public void Modify(DataBaseRepositoryHost repository) { var uri = new Uri(this.dataBase.TableContext.BasePath); foreach (var item in this) { var dataTable = item.Key; var table = item.Value; var path1 = table.Path; var path2 = dataTable.CategoryPath + dataTable.TableName; var schemaUri = new Uri(uri.ToString() + path1 + CremaSchema.SchemaExtension); var xmlUri = new Uri(uri.ToString() + path1 + CremaSchema.XmlExtension); if (table.TemplatedParent == null) { repository.Modify(schemaUri.LocalPath, dataTable.GetXmlSchema()); } repository.Modify(xmlUri.LocalPath, dataTable.GetXml()); } }
public void Modify(DataBaseRepositoryHost repository, Func <Type, bool> predicate) { var uri = new Uri(this.dataBase.TypeContext.BasePath); foreach (var item in this) { var dataType = item.Key; var type = item.Value; if (predicate(type) == false) { continue; } var path1 = type.Path; var path2 = dataType.CategoryPath + dataType.Name; var schemaUri = new Uri(uri.ToString() + path1 + CremaSchema.SchemaExtension); if (dataType.DataSet == null) { repository.Delete(schemaUri.LocalPath); } else { repository.Modify(schemaUri.LocalPath, dataType.GetXmlSchema()); if (path1 != path2) { var targetSchemaUri = new Uri(uri.ToString() + path2 + CremaSchema.SchemaExtension); repository.Move(schemaUri.LocalPath, targetSchemaUri.LocalPath); } } } }