From e44d262a1ad6e1ad62118a17c40ea74316d4fd59 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Sat, 16 Feb 2013 17:52:40 -0800 Subject: [PATCH] added siaqodb --- Libraries/Siaqodb/siaqodb.XML | 636 ++++++++++++++++++ Libraries/Siaqodb/siaqodb.dll | Bin 0 -> 280064 bytes .../Datastore/IndexProviderFixture.cs | 69 -- .../Datastore/ObjectDatabaseFixture.cs | 39 +- NzbDrone.Core.Test/Eloquera.config | 31 - NzbDrone.Core.Test/Framework/ObjectDbTest.cs | 9 +- NzbDrone.Core.Test/NzbDrone.Core.Test.csproj | 14 - .../FreeSpaceOnDrivesFixture.cs | 12 +- .../RootFolderServiceFixture.cs | 2 +- NzbDrone.Core.Test/packages.config | 1 - NzbDrone.Core/ContainerExtentions.cs | 4 +- .../Datastore/BaseRepositoryModel.cs | 6 +- NzbDrone.Core/Datastore/BasicRepository.cs | 14 +- NzbDrone.Core/Datastore/EloqueraDbFactory.cs | 83 --- NzbDrone.Core/Datastore/IdService.cs | 91 --- NzbDrone.Core/Datastore/IndexProvider.cs | 81 --- .../Datastore/Migrations/NzbDroneMigration.cs | 4 +- NzbDrone.Core/Datastore/ObjectDbFactory.cs | 42 ++ .../{EloqueraDb.cs => SiaqodbProxy.cs} | 68 +- NzbDrone.Core/Eloquera.config | 31 - NzbDrone.Core/NzbDrone.Core.csproj | 19 +- NzbDrone.Core/Repository/Episode.cs | 1 - NzbDrone.Core/Repository/Series.cs | 1 - .../RootFolders/RootFolderRepository.cs | 11 +- NzbDrone.Core/packages.config | 1 - NzbDrone.Web/Eloquera.config | 31 - NzbDrone.Web/NzbDrone.Web.csproj | 12 - NzbDrone.Web/packages.config | 1 - SqlCe/NzbDrone.SqlCe.dll | Bin 4096 -> 4096 bytes 29 files changed, 761 insertions(+), 553 deletions(-) create mode 100644 Libraries/Siaqodb/siaqodb.XML create mode 100644 Libraries/Siaqodb/siaqodb.dll delete mode 100644 NzbDrone.Core.Test/Datastore/IndexProviderFixture.cs delete mode 100644 NzbDrone.Core.Test/Eloquera.config delete mode 100644 NzbDrone.Core/Datastore/EloqueraDbFactory.cs delete mode 100644 NzbDrone.Core/Datastore/IdService.cs delete mode 100644 NzbDrone.Core/Datastore/IndexProvider.cs create mode 100644 NzbDrone.Core/Datastore/ObjectDbFactory.cs rename NzbDrone.Core/Datastore/{EloqueraDb.cs => SiaqodbProxy.cs} (55%) delete mode 100644 NzbDrone.Core/Eloquera.config delete mode 100644 NzbDrone.Web/Eloquera.config diff --git a/Libraries/Siaqodb/siaqodb.XML b/Libraries/Siaqodb/siaqodb.XML new file mode 100644 index 000000000..32203e305 --- /dev/null +++ b/Libraries/Siaqodb/siaqodb.XML @@ -0,0 +1,636 @@ + + + + siaqodb + + + + + Attribute to be used for a member of a storable class and that object will be ignored by siaqodb engine + + + + + Attribute to be used for a member of type String of a storable class to limit Length of a string object to be stored in database + + + + + Create an attribute instance of Type MaxLength + + number of characters from string to be stored in database + + + + Use this attribute if you use a Property and inside that + property use some complex code and when Siaqodb engine is not able + to get what is backing field of that Property, variableName is used for Siaqodb engine when that property is used + + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + + + + + Do NOT use it!, it is used only internally + + + + + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + Do NOT use it!, it is used only internally + + + + + Main interface to be used by implementers to retrieve objects from database + + + + + + + + + + Class that describe a field of an object stored in database + + + + + Name of field stored in database + + + + + Type of field stored in database + + + + + Class that describe Type of objects stored in database + + + + + Name of Type stored in database + + + + + List of fields + + + + + List used to retrieve objects from database + + Type of objects from list + + + + Add obeject of Type T in the list + + object to be added + + + + Remove all elements from list + + + + + Determines if an element is in list + + The object to locate in list + bool value if object was found or not + + + + Remove object from list + + The object to remove + bool value if object was removed or not + + + + Main class of siaqodb database engine responsible for storing, retrieving ,deleting objects on database files + + + + + Create a new instance of Siaqodb, database is not opened yet + + + + + Create a new instance of Siaqodb and open the database + + Physical folder name where objects are stored + + + + Open database folder + + path where objects are stored + + + + Insert or update object; if object is loaded from database and this method is called then update will occur, if object is new created then insert will occur + + Object to be stored + + + + Insert or update object partially, only provided properties are saved + + object of which properties will be stored + properties to be stored + + + + Insert or update object partially, only provided properties are saved + + object of which properties will be stored + properties to be stored + if true,it will store only references to complex objects + + + + Insert or update object by a Transaction; if object is loaded from database and this method is called then update will occur, if object is new created then insert will occur + + Object to be stored + Transaction object + + + + Load all objects of Type provided + + Type of objects to be loaded from database + List of objects retrieved from database + + + + Load object from database by OID provided + + The Type of object to be loaded + oid of object + the object stored in database with oid provided + + + + Close database + + + + + Cast method to be used in LINQ queries + + Type over which LINQ will take action + + + + + + Query method to be used in LINQ queries + + Type over which LINQ will take action + + + + + + Load OIDs by expression + + Type for which OIDs will be loaded + filter expression + List of OIDs + + + + Load all object OIDs of MetaType provided + + meta type Load by method GetAllTypes() + + + + + + Load value of a field of an object identified by OID provided + + OID of object + fieldName + MetaType + + + + + + Delete an object from database + + Object to be deleted + + + + Delete an object from database using a Transaction + + Object to be deleted + Transaction + + + + Delete an object from database by a certain field(ex:ID that come from server) + + Object to be deleted + Names of field that this method will lookup for object to delete it + + + + Delete an object from database by a certain field(ex:ID that come from server) + + Object to be deleted + Names of fields that this method will lookup for object to delete it + + + + Delete an object from database by a certain field(ex:ID that come from server) + + Object to be deleted + Names of fields that this method will lookup for object to delete it + Transaction object + + + + Delete an object from database by a criteria + + Pairs of fields-values to lookup for object to delete it + Number of objects deleted + + + + Delete all objects of Type provided + + Type of objects to be deleted + + + + Delete all objects of Type provided + + Type of objects to be deleted> + + + + Delete all objects of Type provided + + Type of objects to be deleted + If this is TRUE all dynamic length data associated with objects will be marked as free and Shrink method is able to free the space + + + + Return all Types from database folder + + List of MetaType objects + + + + Return number of objects of Type provided + + Type of objects + + + + + + Export to XML all objects of Type provided from database + + Type of objects to be exported + XmlWriter + + + + Export to XML list of objects provided + + Type of objects + XmlWriter + list of objects to be exported + + + + Import from XML objects and return a list of them + + Type of objects to be imported + XmlReader + List of objects imported + + + + Import from XML objects and return a list and save into database + + Type of objects to be imported + XmlReader + if TRUE objects are saved also in database + List of objects imported + + + + this method is obsolete Use SiaqodbConfigurator.SetDatabaseFileName() method + + type + fielName + + + + Update an object in database by a certain Field(eq: ID that come from a server) + + FieldName by which update is made(eq an ID) + object that has all values but not OID to update it in database + true if object was updated and false if object was not found in database + + + + Update an object in database by certain Fields(eq: ID that come from a server) + + name of fields by which update is made(eq an ID) + object that has all values but not OID to update it in database + true if object was updated and false if object was not found in database + + + + Update an object in database by certain Fields(eq: ID that come from a server) + + name of fields by which update is made(eq an ID) + object that has all values but not OID to update it in database + Transaction object + true if object was updated and false if object was not found in database + + + + return current database path + + The database folder path + + + + Start a database Transaction to be used on insert/update/delete objects + + Transaction object + + + + Get a list of unique values for a field index + + Type where index is defined + Type of field indexed + Name of field or automatic property which is indexed + + + + + + Load all objects in Lazy mode, objects are activated/read from db when it is accessed + by index or by enumerator + + Type of objects to be loaded from database + LazyObjectList of objects + + + + Get OID of object, if the Type of object has not defined OID property then object and OID are weak cached during object load from database and this value is returned, + otherwise it is returned value of the OID property + + The object for which OID is returned + The OID associated with object that is stored in database + + + + Raised before an object is saved in database + + + + + Raised after an object is saved in database + + + + + Raised before an object is deleted from database + + + + + Raised after an object is deleted from database + + + + + Raised before an object is loaded from database + + + + + Raised after object is loaded from database + + + + + Class responsible for configurations of Siaqodb database engine + + + + + Add an index for a field or automatic property of a certain Type,an Index can be added also by using Attribute: Sqo.Attributes.Index; + both ways of adding index are similar + + Field name or automatic property name + Type that declare the field + + + + Add an UniqueConstraint for a field of a certain Type,an UniqueConstraint can be added also by using Attribute: Sqo.Attributes.UniqueConstraint; + both ways of adding UniqueConstraint are similar + + Field name or automatic property name + Type that declare the field + + + + Put MaxLength for a string field or automatic property of a Type, MaxLength can be set also by using Attribute: Sqo.Attributes.MaxLength + + Field name or automatic property name + max length for a string + Type that declare the field + + + + Ignore a field or automatic property to be stored + + Name of field or automatic property + Type that declare the field + + + + Set the name of backing field for a property in case engine cannto discover it, this also can be set by attribute: Sqo.Attributes.UseVariable + + Name of property + Name of backing field of property + + + + + + Set the password for encryption algorithm used to encrypt database data + + The password + + + + Set your custom encryption algorithm that implemets IEncryptor interface + + The instance of custom encryption algorithm + + + + Set build-in encryption algorithm + + Encryption algorithm + + + + Set custom fileName on disk of database file for Type T + + Type of objects + Name of database file on disk + + + + By default this is true for all types. Set this to false to not load childs entities of objects of Type provided + + Type for objects + true if related object need to be loaded, false if you want to load by Include(...) method + + + + Set true to raise Loading/Loaded events + + + + + + + Set if database will be encrypted or not + + + + + Database utilities + + + + + Rebuild and defragment indexes + + + + + + + Shrink database files including rawdata.sqr and indexes + + + + + Repair database files by fixing corrupted objects bytes + + + + + + + Repair database file of Type provided, the corrupted objects will be recuperated or deleted + + + + + + + Normal shrink, all blocks marked as free will be supressed + + + + + All database files will be parsed and check if a block can be marked as free then supress free blocks; + This operation can be slow if your database is big. + + + + + This includes Normal + ForceClaimSpace but also shrink of every db file; after this operation OID values of the stored objects may change. + + + + + Basic class that any siaqodb storable class may inherits from + + + + + Object Identifier(unique per Type) + + + + + Commit transaction to database + + + + + Rollback changes + + + + \ No newline at end of file diff --git a/Libraries/Siaqodb/siaqodb.dll b/Libraries/Siaqodb/siaqodb.dll new file mode 100644 index 0000000000000000000000000000000000000000..06a93d4022dffb95bb28aa009cebee3ee6212ac7 GIT binary patch literal 280064 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⪚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 ZF=)NT4;##U5zgI8?R(pKg8xg8{{o^?31R>M literal 0 HcmV?d00001 diff --git a/NzbDrone.Core.Test/Datastore/IndexProviderFixture.cs b/NzbDrone.Core.Test/Datastore/IndexProviderFixture.cs deleted file mode 100644 index d6891ed35..000000000 --- a/NzbDrone.Core.Test/Datastore/IndexProviderFixture.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using FluentAssertions; -using NUnit.Framework; -using NzbDrone.Core.Datastore; -using NzbDrone.Core.Repository; -using NzbDrone.Core.Test.Framework; - -namespace NzbDrone.Core.Test.Datastore -{ - [TestFixture] - public class IndexProviderFixture : ObjectDbTest - { - [SetUp] - public void Setup() - { - WithObjectDb(); - } - - [Test] - public void should_be_able_to_get_sequential_numbers() - { - var indexs = new List(); - - - for (var i = 0; i < 1000; i++) - { - indexs.Add(Subject.Next(GetType())); - } - - indexs.Should().OnlyHaveUniqueItems(); - } - - - - [Test] - public void diffrentTypes_should_get_their_own_counter() - { - var seriesIndex = new List(); - var episodeIndex = new List(); - - - for (var i = 0; i < 200; i++) - { - seriesIndex.Add(Subject.Next(typeof(Series))); - } - - for (var i = 0; i < 100; i++) - { - episodeIndex.Add(Subject.Next(typeof(Episode))); - } - - seriesIndex.Should().OnlyHaveUniqueItems(); - episodeIndex.Should().OnlyHaveUniqueItems(); - - seriesIndex.Min(c => c).Should().Be(1); - seriesIndex.Max(c => c).Should().Be(200); - - episodeIndex.Min(c => c).Should().Be(1); - episodeIndex.Max(c => c).Should().Be(100); - } - - } -} - - - diff --git a/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs b/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs index 898a7e9bc..06f7e7427 100644 --- a/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs +++ b/NzbDrone.Core.Test/Datastore/ObjectDatabaseFixture.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using Eloquera.Client; using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; @@ -20,16 +19,16 @@ public class ObjectDatabaseFixture : ObjectDbTest [SetUp] public void SetUp() { - WithObjectDb(false); + WithObjectDb(memory:false); testSeries = Builder .CreateNew() - .With(s => s.Id = 0) + .With(s => s.OID = 0) .Build(); testEpisode = Builder .CreateNew() - .With(e => e.Id = 0) + .With(e => e.OID = 0) .Build(); @@ -52,7 +51,7 @@ public void double_insert_should_fail() [Test] public void update_item_with_root_index_0_should_faile() { - testSeries.Id = 0; + testSeries.OID = 0; Assert.Throws(() => Db.Update(testSeries)); } @@ -93,7 +92,7 @@ public void should_update_nested_objects() { testEpisode.Series = Builder .CreateNew() - .With(s => s.Id = 0) + .With(s => s.OID = 0) .Build(); Db.Insert(testEpisode); @@ -110,19 +109,19 @@ public void should_update_nested_objects() [Test] public void new_objects_should_get_id() { - testSeries.Id = 0; + testSeries.OID = 0; Db.Insert(testSeries); - testSeries.Id.Should().NotBe(0); + testSeries.OID.Should().NotBe(0); } [Test] public void new_object_should_get_new_id() { - testSeries.Id = 0; + testSeries.OID = 0; Db.Insert(testSeries); Db.AsQueryable().Should().HaveCount(1); - testSeries.Id.Should().Be(1); + testSeries.OID.Should().Be(1); } @@ -135,31 +134,31 @@ public void should_be_able_to_assign_ids_to_nested_objects() Db.Insert(nested); - nested.Id.Should().Be(1); - nested.List.Should().OnlyContain(c => c.Id > 0); + nested.OID.Should().Be(1); + nested.List.Should().OnlyContain(c => c.OID > 0); } [Test] public void should_have_id_when_returned_from_database() { - testSeries.Id = 0; + testSeries.OID = 0; Db.Insert(testSeries); var item = Db.AsQueryable(); item.Should().HaveCount(1); - item.First().Id.Should().NotBe(0); - item.First().Id.Should().BeLessThan(100); - item.First().Id.Should().Be(testSeries.Id); + item.First().OID.Should().NotBe(0); + item.First().OID.Should().BeLessThan(100); + item.First().OID.Should().Be(testSeries.OID); } [Test] public void should_be_able_to_find_object_by_id() { Db.Insert(testSeries); - var item = Db.AsQueryable().Single(c => c.Id == testSeries.Id); + var item = Db.AsQueryable().Single(c => c.OID == testSeries.OID); - item.Id.Should().NotBe(0); - item.Id.Should().Be(testSeries.Id); + item.OID.Should().NotBe(0); + item.OID.Should().Be(testSeries.OID); } [Test] @@ -181,7 +180,7 @@ public NestedModel() List = new List { this }; } - public IList List { get; set; } + public List List { get; set; } } } diff --git a/NzbDrone.Core.Test/Eloquera.config b/NzbDrone.Core.Test/Eloquera.config deleted file mode 100644 index 5ae536d21..000000000 --- a/NzbDrone.Core.Test/Eloquera.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - diff --git a/NzbDrone.Core.Test/Framework/ObjectDbTest.cs b/NzbDrone.Core.Test/Framework/ObjectDbTest.cs index f859f635f..1d6df4375 100644 --- a/NzbDrone.Core.Test/Framework/ObjectDbTest.cs +++ b/NzbDrone.Core.Test/Framework/ObjectDbTest.cs @@ -36,8 +36,8 @@ protected TSubject Subject public abstract class ObjectDbTest : CoreTest { - private EloqueraDb _db; - protected EloqueraDb Db + private IObjectDatabase _db; + protected IObjectDatabase Db { get { @@ -52,15 +52,14 @@ protected void WithObjectDb(bool memory = true) { if (memory) { - _db = new EloqueraDbFactory(new EnvironmentProvider()).CreateMemoryDb(); + _db = new SiaqoDbFactory(new DiskProvider()).CreateMemoryDb(); } else { - _db = new EloqueraDbFactory(new EnvironmentProvider()).Create(Path.Combine(Environment.CurrentDirectory,Guid.NewGuid().ToString()+ ".elq")); + _db = new SiaqoDbFactory(new DiskProvider()).Create(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Guid.NewGuid().ToString())); } Mocker.SetConstant(Db); - Mocker.SetConstant(Db.Db); } [TearDown] diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 2a4408ee0..3a78efc33 100644 --- a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -90,18 +90,6 @@ False ..\Libraries\DeskMetrics\DeskMetrics.NET.dll - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Client.dll - True - - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Common.dll - True - - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Server.exe - True - ..\packages\NBuilder.3.0.1.1\lib\FizzWare.NBuilder.dll @@ -163,7 +151,6 @@ - @@ -336,7 +323,6 @@ Always - Always diff --git a/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/FreeSpaceOnDrivesFixture.cs b/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/FreeSpaceOnDrivesFixture.cs index 1c6d60edf..ca53b1ea1 100644 --- a/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/FreeSpaceOnDrivesFixture.cs +++ b/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/FreeSpaceOnDrivesFixture.cs @@ -29,7 +29,7 @@ public void should_return_one_drive_when_only_one_root_dir_exists() { Mocker.GetMock() .Setup(s => s.All()) - .Returns(new List { new RootFolder { Id = 1, Path = @"C:\Test\TV" } }); + .Returns(new List { new RootFolder { OID = 1, Path = @"C:\Test\TV" } }); Mocker.GetMock() .Setup(s => s.GetPathRoot(@"C:\Test\TV")) @@ -49,8 +49,8 @@ public void should_return_one_drive_when_two_rootDirs_on_the_same_drive_exist() { Mocker.GetMock() .Setup(s => s.All()) - .Returns(new List { new RootFolder { Id = 1, Path = @"C:\Test\TV" }, - new RootFolder { Id = 2, Path = @"C:\Test\TV2" }}); + .Returns(new List { new RootFolder { OID = 1, Path = @"C:\Test\TV" }, + new RootFolder { OID = 2, Path = @"C:\Test\TV2" }}); Mocker.GetMock() .Setup(s => s.GetPathRoot(It.IsAny())) @@ -70,8 +70,8 @@ public void should_return_two_drives_when_two_rootDirs_on_the_different_drive_ex { Mocker.GetMock() .Setup(s => s.All()) - .Returns(new List { new RootFolder { Id = 1, Path = @"C:\Test\TV" }, - new RootFolder { Id = 2, Path = @"D:\Test\TV" }}); + .Returns(new List { new RootFolder { OID = 1, Path = @"C:\Test\TV" }, + new RootFolder { OID = 2, Path = @"D:\Test\TV" }}); Mocker.GetMock() .Setup(s => s.GetPathRoot(@"C:\Test\TV")) @@ -95,7 +95,7 @@ public void should_skip_rootDir_if_not_found_on_disk() { Mocker.GetMock() .Setup(s => s.All()) - .Returns(new List { new RootFolder { Id = 1, Path = @"C:\Test\TV" } }); + .Returns(new List { new RootFolder { OID = 1, Path = @"C:\Test\TV" } }); Mocker.GetMock() .Setup(s => s.GetPathRoot(@"C:\Test\TV")) diff --git a/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/RootFolderServiceFixture.cs b/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/RootFolderServiceFixture.cs index ab231306c..13bc0463c 100644 --- a/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/RootFolderServiceFixture.cs +++ b/NzbDrone.Core.Test/ProviderTests/RootFolderServiceTests/RootFolderServiceFixture.cs @@ -93,7 +93,7 @@ public void GetUnmappedFolders_throw_on_empty_folders() public void invalid_folder_path_throws_on_add(string path) { Assert.Throws(() => - Mocker.Resolve().Add(new RootFolder { Id = 0, Path = path }) + Mocker.Resolve().Add(new RootFolder { OID = 0, Path = path }) ); } diff --git a/NzbDrone.Core.Test/packages.config b/NzbDrone.Core.Test/packages.config index ee8569b1f..c5b39c855 100644 --- a/NzbDrone.Core.Test/packages.config +++ b/NzbDrone.Core.Test/packages.config @@ -3,7 +3,6 @@ - diff --git a/NzbDrone.Core/ContainerExtentions.cs b/NzbDrone.Core/ContainerExtentions.cs index 2f0c452cd..3602c37aa 100644 --- a/NzbDrone.Core/ContainerExtentions.cs +++ b/NzbDrone.Core/ContainerExtentions.cs @@ -82,8 +82,8 @@ private static void InitDatabase(this ContainerBuilder container) container.Register(c => { - return c.Resolve().Create(); - }).As().SingleInstance(); + return c.Resolve().Create(""); + }).As().SingleInstance(); container.RegisterType().WithParameter(ResolvedParameter.ForNamed("DatabaseTarget")); container.RegisterType().WithParameter(ResolvedParameter.ForNamed("LogProvider")); diff --git a/NzbDrone.Core/Datastore/BaseRepositoryModel.cs b/NzbDrone.Core/Datastore/BaseRepositoryModel.cs index 01d8d4928..d85f6aae2 100644 --- a/NzbDrone.Core/Datastore/BaseRepositoryModel.cs +++ b/NzbDrone.Core/Datastore/BaseRepositoryModel.cs @@ -1,14 +1,10 @@ using System.Linq; -using Eloquera.Client; namespace NzbDrone.Core.Datastore { public abstract class BaseRepositoryModel { - [ID] - private long _eqId; - [PetaPoco.Ignore] - public int Id { get; set; } + public int OID { get; set; } } } diff --git a/NzbDrone.Core/Datastore/BasicRepository.cs b/NzbDrone.Core/Datastore/BasicRepository.cs index ed018fb92..9648514a7 100644 --- a/NzbDrone.Core/Datastore/BasicRepository.cs +++ b/NzbDrone.Core/Datastore/BasicRepository.cs @@ -13,32 +13,32 @@ public interface IBasicRepository public class BasicRepository : IBasicRepository where TModel : BaseRepositoryModel, new() { - public BasicRepository(EloqueraDb eloqueraDb) + public BasicRepository(IObjectDatabase objectDatabase) { - EloqueraDb = eloqueraDb; + ObjectDatabase = objectDatabase; } - protected EloqueraDb EloqueraDb { get; private set; } + protected IObjectDatabase ObjectDatabase { get; private set; } public List All() { - return EloqueraDb.AsQueryable().ToList(); + return ObjectDatabase.AsQueryable().ToList(); } public TModel Get(int id) { - return EloqueraDb.AsQueryable().Single(c => c.Id == id); + return ObjectDatabase.AsQueryable().Single(c => c.OID == id); } public TModel Add(TModel model) { - return EloqueraDb.Insert(model); + return ObjectDatabase.Insert(model); } public void Delete(int id) { var itemToDelete = Get(id); - EloqueraDb.Delete(itemToDelete); + ObjectDatabase.Delete(itemToDelete); } } } diff --git a/NzbDrone.Core/Datastore/EloqueraDbFactory.cs b/NzbDrone.Core/Datastore/EloqueraDbFactory.cs deleted file mode 100644 index 83ac51ac0..000000000 --- a/NzbDrone.Core/Datastore/EloqueraDbFactory.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using Eloquera.Client; -using NzbDrone.Common; -using NzbDrone.Core.Repository; -using NzbDrone.Core.RootFolders; - -namespace NzbDrone.Core.Datastore -{ - public class EloqueraDbFactory - { - private readonly EnvironmentProvider _environmentProvider; - - private readonly string dllPath; - - public EloqueraDbFactory(EnvironmentProvider environmentProvider) - { - _environmentProvider = environmentProvider; - dllPath = _environmentProvider.GetWebBinPath();// this is the path where Eloquera dlls live. - } - - public EloqueraDb CreateMemoryDb() - { - 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); - - try - { - db.OpenDatabase(databaseName); - } - catch (FileNotFoundException) - { - db.CreateDatabase(databaseName); - db.OpenDatabase(databaseName); - } - - //This seemse to cause Invalid Cast Exceptions... WTF - //db.RefreshMode = ObjectRefreshMode.AlwaysReturnUpdatedValues; - - RegisterTypeRules(); - RegisterTypes(db); - - return new EloqueraDb(db, new IdService(new IndexProvider(db))); - } - - private void RegisterTypeRules() - { - RootFolder rootFolder = null; - DB.TypeRules - //.SetIDField(() => rootFolder.Id) - .IgnoreProperty(() => rootFolder.FreeSpace) - .IgnoreProperty(() => rootFolder.UnmappedFolders); - - //Series series = null; - //DB.TypeRules - // .SetIDField(() => series.Id); - } - - private void RegisterTypes(DB db) - { - db.RegisterType(typeof(RootFolder)); - db.RegisterType(typeof(Series)); - db.RegisterType(typeof(Episode)); - } - } -} diff --git a/NzbDrone.Core/Datastore/IdService.cs b/NzbDrone.Core/Datastore/IdService.cs deleted file mode 100644 index 1a8887736..000000000 --- a/NzbDrone.Core/Datastore/IdService.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; - -namespace NzbDrone.Core.Datastore -{ - public class IdService - { - private readonly IndexProvider _indexProvider; - - private static readonly ConcurrentDictionary> propertyCache = new ConcurrentDictionary>(); - - public IdService(IndexProvider indexProvider) - { - _indexProvider = indexProvider; - } - - public void EnsureIds(T obj, HashSet context) - { - //context is use to prevent infinite loop if objects are recursively looped. - if (obj == null || context.Contains(obj)) - { - return; - } - - context.Add(obj); - - var modelBase = obj as BaseRepositoryModel; - - if (modelBase != null && modelBase.Id == 0) - { - modelBase.Id = _indexProvider.Next(obj.GetType()); - } - - var list = obj as IEnumerable; - if (list != null) - { - foreach (var item in list) - { - EnsureIds(item, context); - } - return; - } - - foreach (var propertyInfo in GetPotentialProperties(obj.GetType())) - { - var propValue = propertyInfo.GetValue(obj, null); - EnsureIds(propValue, context); - } - } - - private IList GetPotentialProperties(Type type) - { - IList result; - if (!propertyCache.TryGetValue(type.FullName, out result)) - { - result = type.GetProperties().Where(ShouldCrawl).ToList(); - propertyCache.TryAdd(type.FullName, result); - } - - return result; - } - - private bool ShouldCrawl(PropertyInfo propertyInfo) - { - return propertyInfo.CanRead && ShouldCrawl(propertyInfo.PropertyType); - } - - private bool ShouldCrawl(Type type) - { - if (type.IsGenericType) - { - var genericArg = type.GetGenericArguments()[0]; - - //skip if generic argument type isn't interesting - if (!ShouldCrawl(genericArg)) - { - return false; - } - - var listType = typeof(IList<>).MakeGenericType(genericArg); - return listType.IsAssignableFrom(type); - } - - return type.IsClass && type.FullName.StartsWith("NzbDrone"); - } - } -} \ No newline at end of file diff --git a/NzbDrone.Core/Datastore/IndexProvider.cs b/NzbDrone.Core/Datastore/IndexProvider.cs deleted file mode 100644 index 9854da8be..000000000 --- a/NzbDrone.Core/Datastore/IndexProvider.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Eloquera.Client; - -namespace NzbDrone.Core.Datastore -{ - public interface IProvideIndex - { - int Next(Type type); - } - - public class IndexProvider : IProvideIndex - { - private readonly DB _db; - - private static object _lock = new object(); - - public IndexProvider(DB db) - { - _db = db; - - if (db.IsTypeRegistered(typeof(IndexList))) - { - db.RegisterType(typeof(IndexList)); - } - - lock (_lock) - { - try - { - _db.Query().Count(); - - } - catch (EloqueraException ex) - { - _db.Store(new IndexList()); - } - } - - } - - public int Next(Type type) - { - if (type == null) - { - throw new ArgumentException(); - } - - var key = type.Name; - - lock (_lock) - { - var indexList = _db.Query().Single(); - - var indexInfo = indexList.SingleOrDefault(c => c.Type == key); - - if (indexInfo == null) - { - indexInfo = new IndexInfo { Type = key }; - indexList.Add(indexInfo); - } - - indexInfo.Index++; - - _db.Store(indexList); - - return indexInfo.Index; - } - } - - public class IndexList : List { } - - public class IndexInfo - { - public string Type { get; set; } - public int Index { get; set; } - } - - } -} \ No newline at end of file diff --git a/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs b/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs index d846b4ea0..055f46e9e 100644 --- a/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs +++ b/NzbDrone.Core/Datastore/Migrations/NzbDroneMigration.cs @@ -35,12 +35,12 @@ public override void Up() } } - protected EloqueraDb GetObjectDb() + protected IObjectDatabase GetObjectDb() { var sqlCeConnection = SqlCeProxy.EnsureDatabase(Database.ConnectionString); var eqPath = sqlCeConnection.Database.Replace(".sdf", ".eq"); - return new EloqueraDbFactory(new EnvironmentProvider()).Create(eqPath); + return new SiaqoDbFactory(new DiskProvider()).Create(eqPath); } public override void Down() diff --git a/NzbDrone.Core/Datastore/ObjectDbFactory.cs b/NzbDrone.Core/Datastore/ObjectDbFactory.cs new file mode 100644 index 000000000..10a45053d --- /dev/null +++ b/NzbDrone.Core/Datastore/ObjectDbFactory.cs @@ -0,0 +1,42 @@ +using System; +using System.Linq; +using NzbDrone.Common; +using Sqo; + +namespace NzbDrone.Core.Datastore +{ + public interface IObjectDbFactory + { + IObjectDatabase CreateMemoryDb(); + IObjectDatabase Create(string dbPath); + } + + public class SiaqoDbFactory : IObjectDbFactory + { + private readonly DiskProvider _diskProvider; + + public SiaqoDbFactory(DiskProvider diskProvider) + { + _diskProvider = diskProvider; + } + + public IObjectDatabase CreateMemoryDb() + { + throw new NotImplementedException(); + } + + public IObjectDatabase Create(string dbPath) + { + if(!_diskProvider.FolderExists(dbPath)) + { + _diskProvider.CreateDirectory(dbPath); + } + + SiaqodbConfigurator.SetTrialLicense("uvhpW4hT5Rtq+Uoyq8MOm1Smon15foxV5iS5bAegIXU="); + + var db = new Siaqodb(dbPath); + + return new SiaqodbProxy(db); + } + } +} diff --git a/NzbDrone.Core/Datastore/EloqueraDb.cs b/NzbDrone.Core/Datastore/SiaqodbProxy.cs similarity index 55% rename from NzbDrone.Core/Datastore/EloqueraDb.cs rename to NzbDrone.Core/Datastore/SiaqodbProxy.cs index ca9909d93..e60680bce 100644 --- a/NzbDrone.Core/Datastore/EloqueraDb.cs +++ b/NzbDrone.Core/Datastore/SiaqodbProxy.cs @@ -1,80 +1,81 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Reflection; -using Eloquera.Client; +using Sqo; namespace NzbDrone.Core.Datastore { - public class EloqueraDb : IDisposable + public interface IObjectDatabase : IDisposable { - private readonly IdService _idService; - public DB Db { get; private set; } + IEnumerable AsQueryable(); + T Insert(T obj) where T : BaseRepositoryModel; + T Update(T obj) where T : BaseRepositoryModel; + IList InsertMany(IList objects) where T : BaseRepositoryModel; + IList UpdateMany(IList objects) where T : BaseRepositoryModel; + void Delete(T obj) where T : BaseRepositoryModel; + void DeleteMany(IEnumerable objects) where T : BaseRepositoryModel; + } - public EloqueraDb(DB db, IdService idService) + public class SiaqodbProxy : IObjectDatabase + { + private readonly Siaqodb _db; + + public SiaqodbProxy(Siaqodb db) { - _idService = idService; - Db = db; + _db = db; + } + + public void Dispose() + { + } public IEnumerable AsQueryable() { - return Db.Query(); + return _db.Cast(); } public T Insert(T obj) where T : BaseRepositoryModel { - if (obj.Id != 0) + if (obj.OID != 0) { throw new InvalidOperationException("Attempted to insert object with existing ID as new object"); } - _idService.EnsureIds(obj, new HashSet()); - Db.Store(obj); + _db.StoreObject(obj); return obj; } public T Update(T obj) where T : BaseRepositoryModel { - if (obj.Id == 0) + if (obj.OID == 0) { - throw new InvalidOperationException("Attempted to update object without ID"); + throw new InvalidOperationException("Attempted to update object without an ID"); } - _idService.EnsureIds(obj, new HashSet()); - Db.Store(obj); + _db.StoreObject(obj); return obj; } public IList InsertMany(IList objects) where T : BaseRepositoryModel { - _idService.EnsureIds(objects, new HashSet()); - return DoMany(objects, Insert); + return DoMany(objects,Insert); } - + public IList UpdateMany(IList objects) where T : BaseRepositoryModel { - _idService.EnsureIds(objects, new HashSet()); return DoMany(objects, Update); + } public void Delete(T obj) where T : BaseRepositoryModel { - if (obj.Id == 0) - { - throw new InvalidOperationException("Attempted to delete an object without an ID"); - } - - Db.Delete(obj); + throw new NotImplementedException(); } public void DeleteMany(IEnumerable objects) where T : BaseRepositoryModel { - foreach (var o in objects) - { - Delete(o); - } + throw new NotImplementedException(); } private IList DoMany(IEnumerable objects, Func function) where T : BaseRepositoryModel @@ -82,10 +83,5 @@ private IList DoMany(IEnumerable objects, Func function) where T return objects.Select(function).ToList(); } - - public void Dispose() - { - Db.Dispose(); - } } } diff --git a/NzbDrone.Core/Eloquera.config b/NzbDrone.Core/Eloquera.config deleted file mode 100644 index 5ae536d21..000000000 --- a/NzbDrone.Core/Eloquera.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - diff --git a/NzbDrone.Core/NzbDrone.Core.csproj b/NzbDrone.Core/NzbDrone.Core.csproj index 43a517c9b..533784647 100644 --- a/NzbDrone.Core/NzbDrone.Core.csproj +++ b/NzbDrone.Core/NzbDrone.Core.csproj @@ -167,15 +167,6 @@ ..\Libraries\DeskMetrics\DeskMetrics.NET.dll - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Client.dll - - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Common.dll - - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Server.exe - ..\packages\Growl.0.6\lib\Growl.Connector.dll @@ -219,6 +210,9 @@ ..\packages\RestSharp.104.1\lib\net4\RestSharp.dll + + ..\Libraries\Siaqodb\siaqodb.dll + ..\packages\SignalR.Server.0.5.3\lib\net40\SignalR.dll @@ -258,10 +252,8 @@ - - - - + + @@ -670,7 +662,6 @@ - diff --git a/NzbDrone.Core/Repository/Episode.cs b/NzbDrone.Core/Repository/Episode.cs index 7425c8494..091a8f89a 100644 --- a/NzbDrone.Core/Repository/Episode.cs +++ b/NzbDrone.Core/Repository/Episode.cs @@ -1,5 +1,4 @@ using System; -using Eloquera.Client; using NzbDrone.Core.Datastore; using NzbDrone.Core.Model; using PetaPoco; diff --git a/NzbDrone.Core/Repository/Series.cs b/NzbDrone.Core/Repository/Series.cs index 157bf8acf..ddfd335f6 100644 --- a/NzbDrone.Core/Repository/Series.cs +++ b/NzbDrone.Core/Repository/Series.cs @@ -1,6 +1,5 @@ using System; using System.ComponentModel; -using Eloquera.Client; using NzbDrone.Core.Datastore; using NzbDrone.Core.Model; using NzbDrone.Core.Repository.Quality; diff --git a/NzbDrone.Core/RootFolders/RootFolderRepository.cs b/NzbDrone.Core/RootFolders/RootFolderRepository.cs index c5929edbe..c71ee7a3b 100644 --- a/NzbDrone.Core/RootFolders/RootFolderRepository.cs +++ b/NzbDrone.Core/RootFolders/RootFolderRepository.cs @@ -1,7 +1,4 @@ -using System.Collections.Generic; -using Eloquera.Client; -using NzbDrone.Core.Datastore; -using NzbDrone.Core.Repository; +using NzbDrone.Core.Datastore; using System.Linq; namespace NzbDrone.Core.RootFolders @@ -14,15 +11,15 @@ public interface IRootFolderRepository : IBasicRepository //This way we only need to implement none_custom methods for repos, like custom queries etc... rest is done automagically. public class RootFolderRepository : BasicRepository, IRootFolderRepository { - public RootFolderRepository(EloqueraDb eloqueraDb) - : base(eloqueraDb) + public RootFolderRepository(IObjectDatabase objectDatabase) + : base(objectDatabase) { } public RootFolder Add(RootFolder rootFolder) { - return EloqueraDb.Insert(rootFolder); + return ObjectDatabase.Insert(rootFolder); } } } diff --git a/NzbDrone.Core/packages.config b/NzbDrone.Core/packages.config index d39efd159..5a6f46417 100644 --- a/NzbDrone.Core/packages.config +++ b/NzbDrone.Core/packages.config @@ -3,7 +3,6 @@ - diff --git a/NzbDrone.Web/Eloquera.config b/NzbDrone.Web/Eloquera.config deleted file mode 100644 index 5ae536d21..000000000 --- a/NzbDrone.Web/Eloquera.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - diff --git a/NzbDrone.Web/NzbDrone.Web.csproj b/NzbDrone.Web/NzbDrone.Web.csproj index deb611854..062a5bbb4 100644 --- a/NzbDrone.Web/NzbDrone.Web.csproj +++ b/NzbDrone.Web/NzbDrone.Web.csproj @@ -92,17 +92,6 @@ ..\packages\DynamicQuery.1.0\lib\35\Dynamic.dll - - False - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Client.dll - - - False - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Common.dll - - - ..\packages\EloqueraDB.5.0.0\lib\net40\Eloquera.Server.exe - ..\packages\LowercaseRoutesMVC.1.0.3\lib\LowercaseRoutesMVC.dll @@ -435,7 +424,6 @@ - diff --git a/NzbDrone.Web/packages.config b/NzbDrone.Web/packages.config index 3184e9642..3a9452572 100644 --- a/NzbDrone.Web/packages.config +++ b/NzbDrone.Web/packages.config @@ -12,7 +12,6 @@ - diff --git a/SqlCe/NzbDrone.SqlCe.dll b/SqlCe/NzbDrone.SqlCe.dll index 9cde163247f3eb5ccd06a0f566eec29be6e6b53f..87aa47a56d16ada8d3609b5d3efbcbc486269098 100644 GIT binary patch delta 406 zcmXv~JuE{}6#nk*>$`og)z<6KG@9l$ex9_dI!FhENQtnZNyQ=vu`x6ji%J9$qR)*% zFsVfvkyKa_34=r;7Q3Aq#o&mLP=zwQ%H} zfUc_xDy3#YRHG&QRCdwPEfzFNfa;0E6{DU&8-x4rRqD-?qU&*}u?TObsveU&e2U%4 zD(_}orX1_OEt(9h;SwSG$+5h5j0XqNiU4+r>u^9^j}ki2C)<@=Wm^ewf9Gqdw<{DM zyg0g9z1`nCljmxOPZNrv83{wY5Qg8KyWDzb5{-$1AA}2H6iGBz7C{tAA*i4RBZ7ruE1np8W1~S3Jf;z} z6a=-4SXuZ3QrajM0l~_z!pcIN0|(}PcG#KOnXR}L_qa+~+doXwZ`!{sMbFc~62vBe zd-7B9@G20Nc%u*K;S^;lgwpg7hv%5!Aqd*wy}F{2y; z9LMr3!GIRYMvQWkuvvSyz#8l-JHo*v4KxP?U(uSnx(NE>)^dIlLPg(!~