public BaseTypeSyncer(string folder, DeveloperFriendly.DeveloperFriendlyApplication.SyncMode mode, bool deleteMissingTypes)
        {
            _mode = mode;
             storageFolder = folder;
             hashFile = Path.Combine(folder, ".hash");

            _deleteMissingTypes = deleteMissingTypes;

             bool requiresFirstDump = false;
             if (!Directory.Exists(storageFolder))
             {
                 Directory.CreateDirectory(storageFolder);
                 requiresFirstDump = true;
             }

             if ((mode & DeveloperFriendlyApplication.SyncMode.Inward) == DeveloperFriendlyApplication.SyncMode.Inward)
             {
                 ImportAll(deleteMissingTypes && !requiresFirstDump);
             }

             if ((mode & DeveloperFriendlyApplication.SyncMode.Outward) == DeveloperFriendlyApplication.SyncMode.Outward)
             {

                 RegisterChangeEvents(() => {
                     DumpConfigFiles();
                 });

                 if (requiresFirstDump)
                     DumpConfigFiles();
             }
        }
 public DataTypeSyncer(string rootFolder, DeveloperFriendly.DeveloperFriendlyApplication.SyncMode mode, bool deleteMissingTypes)
     : base(Path.Combine(rootFolder, "DataTypes"), mode, false/*don't delete types from DB not in filesystem*/)
 {
 }
 public MediaTypeSerializer(string rootFolder, DeveloperFriendly.DeveloperFriendlyApplication.SyncMode mode, bool deleteMissingTypes)
     : base(Path.Combine(rootFolder, "MediaTypes"), mode, deleteMissingTypes)
 {
 }
 public DocumentTypeSyncer(string rootFolder, DeveloperFriendly.DeveloperFriendlyApplication.SyncMode mode, bool deleteMissingTypes)
     : base(Path.Combine(rootFolder, "DocumentTypes"), mode, deleteMissingTypes)
 {
 }