Example #1
0
        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());
            }
        }
Example #2
0
        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);
                    }
                }
            }
        }