public void Commit() { if (this.initialized == false) { return; } DirectoryUtility.Backup(this.BasePath); DirectoryUtility.Prepare(this.BasePath); foreach (var item in this.tableInfos) { using (var stream = FileUtility.OpenWrite(this.BasePath, CremaSchema.TableDirectory, infoDirectory, item.Key + jsonExtension)) { JsonSerializerUtility.Write(stream, item.Value); } } foreach (var item in this.tableDatas) { using (var stream = FileUtility.OpenWrite(this.BasePath, CremaSchema.TableDirectory, dataDirectory, item.Key)) { this.OnSerializeTable(stream, item.Value); } } foreach (var item in this.typeInfos) { using (var stream = FileUtility.OpenWrite(this.BasePath, CremaSchema.TypeDirectory, infoDirectory, item.Key + jsonExtension)) { JsonSerializerUtility.Write(stream, item.Value); } } foreach (var item in this.typeDatas) { using (var stream = FileUtility.OpenWrite(this.BasePath, CremaSchema.TypeDirectory, dataDirectory, item.Key)) { this.OnSerializeTable(stream, item.Value); } } var tableInfos = this.tableInfos.Select(item => Path.Combine(CremaSchema.TableDirectory, item.Key)); var typeInfos = this.typeInfos.Select(item => Path.Combine(CremaSchema.TypeDirectory, item.Key)); this.info.ItemList = tableInfos.Concat(typeInfos).ToArray(); this.info.Version = new Version(CremaSchema.MajorVersion, CremaSchema.MinorVersion); this.WriteInfo(); DirectoryUtility.Clean(this.BasePath); }
public void Dispose() { foreach (var item in this.ToArray <DataBase>()) { { var dataBaseInfo = (DataBaseSerializationInfo)item.DataBaseInfo; var filename = FileUtility.Prepare(this.cachePath, $"{item.ID}{databaseExtension}"); JsonSerializerUtility.Write(filename, dataBaseInfo, true); } { var dataBaseState = item.DataBaseState & DataBaseState.IsLoaded; var filename = FileUtility.Prepare(this.cachePath, $"{item.ID}{stateExtension}"); JsonSerializerUtility.Write(filename, dataBaseState, true); } item.Dispose(); } }
private void WriteInfo() { var infoPath = Path.Combine(this.BasePath, "info.json"); JsonSerializerUtility.Write(infoPath, this.info, true); }
private static void WriteAccessInfo(string accessInfoPath, AccessInfo accessInfo) { JsonSerializerUtility.Write(accessInfoPath, (AccessSerializationInfo)accessInfo, true); }