Пример #1
0
        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);
        }
Пример #2
0
 internal DataPageCollection(DataPage parent, IChangeSetHelper changeSetHelper, IDatabaseHelper databaseHelper)
 {
     ChangeSetHelper = changeSetHelper;
     DatabaseHelper  = databaseHelper;
     Parent          = parent;
 }