registered eloquere db with autofac.

pull/6/head
kay.one 12 years ago
parent d13f977bb5
commit 0155de4d92

@ -9,13 +9,16 @@ namespace NzbDrone.Common
private const string APP_DATA = "App_Data\\"; private const string APP_DATA = "App_Data\\";
public const string IIS_FOLDER = "IISExpress"; public const string IIS_FOLDER = "IISExpress";
public const string IIS_EXE = "iisexpress.exe"; public const string IIS_EXE = "iisexpress.exe";
private const string LOG_CONFIG_FILE = "log.config"; private const string LOG_CONFIG_FILE = "log.config";
private const string APP_CONFIG_FILE = "config.xml"; private const string APP_CONFIG_FILE = "config.xml";
public const string NZBDRONE_EXE = "NzbDrone.exe"; public const string NZBDRONE_EXE = "NzbDrone.exe";
public const string NZBDRONE_DB_FILE = "nzbdrone.sdf"; public const string NZBDRONE_SQLCE_DB_FILE = "nzbdrone.sdf";
public const string LOG_DB_FILE = "log.sdf"; public const string NZBDRONE_ELQ_DB_FILE = "nzbdrone.eq";
public const string LOG_SQLCE_DB_FILE = "log.sdf";
public const string LOG_ELQ_DB_FILE = "log.eq";
private const string BACKUP_ZIP_FILE = "NzbDrone_Backup.zip"; private const string BACKUP_ZIP_FILE = "NzbDrone_Backup.zip";
@ -77,14 +80,24 @@ namespace NzbDrone.Common
return Path.Combine(environmentProvider.ApplicationPath, APP_CONFIG_FILE); return Path.Combine(environmentProvider.ApplicationPath, APP_CONFIG_FILE);
} }
public static string GetNzbDroneDbFile(this EnvironmentProvider environmentProvider) public static string GetSqlCeMainDbPath(this EnvironmentProvider environmentProvider)
{
return Path.Combine(environmentProvider.GetAppDataPath(), NZBDRONE_SQLCE_DB_FILE);
}
public static string GetSqlCeLogDbPath(this EnvironmentProvider environmentProvider)
{
return Path.Combine(environmentProvider.GetAppDataPath(), LOG_SQLCE_DB_FILE);
}
public static string GetElqMainDbPath(this EnvironmentProvider environmentProvider)
{ {
return Path.Combine(environmentProvider.GetAppDataPath(), NZBDRONE_DB_FILE); return Path.Combine(environmentProvider.GetAppDataPath(), NZBDRONE_ELQ_DB_FILE);
} }
public static string GetLogDbFileDbFile(this EnvironmentProvider environmentProvider) public static string GetElqLogDbPath(this EnvironmentProvider environmentProvider)
{ {
return Path.Combine(environmentProvider.GetAppDataPath(), LOG_DB_FILE); return Path.Combine(environmentProvider.GetAppDataPath(), LOG_ELQ_DB_FILE);
} }
public static string GetMediaCoverPath(this EnvironmentProvider environmentProvider) public static string GetMediaCoverPath(this EnvironmentProvider environmentProvider)

@ -10,20 +10,25 @@ namespace NzbDrone.Core.Test.Datastore
[TestFixture] [TestFixture]
public class ObjectDatabaseFixture : ObjectDbTest public class ObjectDatabaseFixture : ObjectDbTest
{ {
private Series testSeries;
private Episode testEpisode;
[SetUp] [SetUp]
public void SetUp() public void SetUp()
{ {
WithObjectDb(); WithObjectDb();
testSeries = Builder<Series>.CreateNew().Build();
testEpisode = Builder<Episode>.CreateNew().Build();
} }
[Test] [Test]
public void should_be_able_to_write_to_database() public void should_be_able_to_write_to_database()
{ {
Db.Insert(testSeries);
var series = Builder<Series>.CreateNew().Build();
Db.Create(series);
Db.AsQueryable<Series>().Should().HaveCount(1); Db.AsQueryable<Series>().Should().HaveCount(1);
@ -32,14 +37,11 @@ namespace NzbDrone.Core.Test.Datastore
[Test] [Test]
public void should_not_store_dirty_data_in_cache() public void should_not_store_dirty_data_in_cache()
{ {
var episode = Builder<Episode>.CreateNew().Build(); Db.Insert(testEpisode);
//Save series without episode attached
Db.Create(episode);
Db.AsQueryable<Episode>().Single().Series.Should().BeNull(); Db.AsQueryable<Episode>().Single().Series.Should().BeNull();
episode.Series = Builder<Series>.CreateNew().Build(); testEpisode.Series = Builder<Series>.CreateNew().Build();
Db.AsQueryable<Episode>().Single().Series.Should().BeNull(); Db.AsQueryable<Episode>().Single().Series.Should().BeNull();
} }
@ -49,10 +51,9 @@ namespace NzbDrone.Core.Test.Datastore
[Test] [Test]
public void should_store_nested_objects() public void should_store_nested_objects()
{ {
var episode = Builder<Episode>.CreateNew().Build(); testEpisode.Series = testSeries;
episode.Series = Builder<Series>.CreateNew().Build();
Db.Create(episode); Db.Insert(testEpisode);
Db.AsQueryable<Episode>().Should().HaveCount(1); Db.AsQueryable<Episode>().Should().HaveCount(1);
Db.AsQueryable<Episode>().Single().Series.Should().NotBeNull(); Db.AsQueryable<Episode>().Single().Series.Should().NotBeNull();
@ -61,18 +62,26 @@ namespace NzbDrone.Core.Test.Datastore
[Test] [Test]
public void should_update_nested_objects() public void should_update_nested_objects()
{ {
var episode = Builder<Episode>.CreateNew().Build(); testEpisode.Series = Builder<Series>.CreateNew().Build();
episode.Series = Builder<Series>.CreateNew().Build();
Db.Create(episode); Db.Insert(testEpisode);
episode.Series.Title = "UpdatedTitle"; testEpisode.Series.Title = "UpdatedTitle";
Db.Update(episode); Db.Update(testEpisode);
Db.AsQueryable<Episode>().Should().HaveCount(1); Db.AsQueryable<Episode>().Should().HaveCount(1);
Db.AsQueryable<Episode>().Single().Series.Should().NotBeNull(); Db.AsQueryable<Episode>().Single().Series.Should().NotBeNull();
Db.AsQueryable<Episode>().Single().Series.Title.Should().Be("UpdatedTitle"); Db.AsQueryable<Episode>().Single().Series.Title.Should().Be("UpdatedTitle");
} }
[Test]
public void new_objects_should_get_id()
{
Db.Insert(testSeries);
testSeries.Id.Should().NotBe(0);
}
} }
} }

@ -80,6 +80,12 @@ namespace NzbDrone.Core
container.Register(c => c.Resolve<ConnectionFactory>().GetLogPetaPocoDb()) container.Register(c => c.Resolve<ConnectionFactory>().GetLogPetaPocoDb())
.Named<IDatabase>("LogProvider"); .Named<IDatabase>("LogProvider");
container.Register(c =>
{
var env = c.Resolve<EnvironmentProvider>();
return c.Resolve<EloqueraDbFactory>().Create(env.GetElqMainDbPath());
}).As<EloqueraDb>().SingleInstance();
container.RegisterType<DatabaseTarget>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("DatabaseTarget")); container.RegisterType<DatabaseTarget>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("DatabaseTarget"));
container.RegisterType<LogProvider>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("LogProvider")); container.RegisterType<LogProvider>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("LogProvider"));
} }

@ -35,7 +35,7 @@ namespace NzbDrone.Core.Datastore
{ {
get get
{ {
return GetConnectionString(_environmentProvider.GetNzbDroneDbFile()); return GetConnectionString(_environmentProvider.GetSqlCeMainDbPath());
} }
} }
@ -43,7 +43,7 @@ namespace NzbDrone.Core.Datastore
{ {
get get
{ {
return GetConnectionString(_environmentProvider.GetLogDbFileDbFile()); return GetConnectionString(_environmentProvider.GetSqlCeLogDbPath());
} }
} }

@ -20,15 +20,15 @@ namespace NzbDrone.Core.Datastore
} }
public T Create<T>(T obj) public T Insert<T>(T obj)
{ {
_db.Store(obj); _db.Store(obj);
return obj; return obj;
} }
public IList<T> CreateMany<T>(IEnumerable<T> objects) public IList<T> InsertMany<T>(IEnumerable<T> objects)
{ {
return DoMany(objects, Create); return DoMany(objects, Insert);
} }
public T Update<T>(T obj) public T Update<T>(T obj)

@ -17,11 +17,11 @@ namespace NzbDrone.Core.Datastore.Migrations
public override void Up() public override void Up()
{ {
if (Database.ConnectionString.Contains(PathExtentions.NZBDRONE_DB_FILE)) if (Database.ConnectionString.Contains(PathExtentions.NZBDRONE_SQLCE_DB_FILE))
{ {
MainDbUpgrade(); MainDbUpgrade();
} }
else if (Database.ConnectionString.Contains(PathExtentions.LOG_DB_FILE)) else if (Database.ConnectionString.Contains(PathExtentions.LOG_SQLCE_DB_FILE))
{ {
LogDbUpgrade(); LogDbUpgrade();
} }

@ -23,7 +23,7 @@ namespace NzbDrone.Core.Providers
public virtual string CreateBackupZip() public virtual string CreateBackupZip()
{ {
var dbFile = _environmentProvider.GetNzbDroneDbFile(); var dbFile = _environmentProvider.GetSqlCeMainDbPath();
var configFile = _environmentProvider.GetConfigPath(); var configFile = _environmentProvider.GetConfigPath();
var zipFile = _environmentProvider.GetConfigBackupFile(); var zipFile = _environmentProvider.GetConfigBackupFile();

Loading…
Cancel
Save