public FabricDatabase(string databaseRoot, IDatabaseHelper databaseHelper = null, IChangeSetHelper changeSetHelper = null, ISchemaManager schemaManager = null, IVersionHelper versionHelper = null) { DatabaseRoot = databaseRoot; if (Path.IsPathRooted(DatabaseRoot)) { FullDataBaseRoot = DatabaseRoot; } else { var relativePathRoot = AppDomain.CurrentDomain.BaseDirectory; var relativePath = Path.Combine(relativePathRoot, DatabaseRoot); FullDataBaseRoot = relativePath; } Resolver = new UnityContainer(); Resolver.RegisterInstance(this); SerializerSettings = new JsonSerializerSettings { Converters = new List <JsonConverter> { new DataPageSerializer(Resolver) }, Formatting = Formatting.Indented, ContractResolver = new CamelCasePropertyNamesContractResolver() }; Resolver.RegisterInstance(SerializerSettings); Resolver.RegisterInstanceOrDefault <IDatabaseHelper, FileSystemDatabaseHelper>(databaseHelper); Resolver.RegisterInstanceOrDefault <IChangeSetHelper, ChangeSetHelper>(changeSetHelper); Resolver.RegisterInstanceOrDefault <ISchemaManager, SchemaManager>(schemaManager); Resolver.RegisterInstanceOrDefault <IVersionHelper, VersionHelper>(versionHelper); }
internal DataPageCollection(DataPage parent, IChangeSetHelper changeSetHelper, IDatabaseHelper databaseHelper) { ChangeSetHelper = changeSetHelper; DatabaseHelper = databaseHelper; Parent = parent; }