moved rootdir to eloquera

This commit is contained in:
kay.one
2013-02-03 20:18:59 -08:00
parent 0155de4d92
commit 9e4bb278ef
35 changed files with 398 additions and 565 deletions

View File

@@ -2,27 +2,52 @@
using System.IO;
using System.Linq;
using Eloquera.Client;
using NzbDrone.Common;
namespace NzbDrone.Core.Datastore
{
public class EloqueraDbFactory
{
public EloqueraDb CreateMemoryDb()
private readonly EnvironmentProvider _environmentProvider;
private readonly string dllPath;
public EloqueraDbFactory(EnvironmentProvider environmentProvider)
{
return InternalCreate("server=(local);password=;options=inmemory;",Guid.NewGuid().ToString());
_environmentProvider = environmentProvider;
dllPath = _environmentProvider.GetWebBinPath();// this is the path where Eloquera dlls live.
}
public EloqueraDb Create(string dbPath)
public EloqueraDb CreateMemoryDb()
{
var file = new FileInfo(dbPath).Name;
return InternalCreate(string.Format("server=(local);database={0};usedatapath={1};password=;", file, dbPath),file);
return InternalCreate("server=(local);password=;options=inmemory;uselocalpath=" + dllPath, Guid.NewGuid().ToString());
}
public EloqueraDb Create(string dbPath = null)
{
if (dbPath == null)
{
dbPath = _environmentProvider.GetElqMainDbPath();
}
var file = new FileInfo(dbPath);
return InternalCreate(string.Format("server=(local);password=;usedatapath={0};uselocalpath={1}", file.Directory.FullName, dllPath), file.Name);
}
private EloqueraDb InternalCreate(string connectionString, string databaseName)
{
var db = new DB(connectionString);
db.CreateDatabase(databaseName);
db.OpenDatabase(databaseName);
try
{
db.OpenDatabase(databaseName);
}
catch (FileNotFoundException)
{
db.CreateDatabase(databaseName);
db.OpenDatabase(databaseName);
}
return new EloqueraDb(db);
}