private static void SaveEntityIndexes(string folder, Entity item, List <string> generatedFileList) { var document = new XmlDocument(); document.LoadXml(@"<configuration type=""entity.indexes"" id=""" + item.Id + @"""></configuration>"); XmlHelper.AddLineBreak((XmlElement)document.DocumentElement); foreach (var index in item.Indexes) { var indexNode = XmlHelper.AddElement(document.DocumentElement, "index"); XmlHelper.AddLineBreak((XmlElement)indexNode); XmlHelper.AddCData((XmlElement)indexNode, "summary", index.Summary); XmlHelper.AddLineBreak((XmlElement)indexNode); XmlHelper.AddAttribute(indexNode, "id", index.Id); XmlHelper.AddAttribute(indexNode, "clustered", index.Clustered); XmlHelper.AddAttribute(indexNode, "importedname", index.ImportedName); XmlHelper.AddAttribute(indexNode, "indextype", index.IndexType.ToString("d")); XmlHelper.AddAttribute(indexNode, "isunique", index.IsUnique); XmlHelper.AddLineBreak((XmlElement)document.DocumentElement); //Process the columns var indexColumnsNodes = XmlHelper.AddElement((XmlElement)indexNode, "indexcolumnset") as XmlElement; XmlHelper.AddLineBreak((XmlElement)indexColumnsNodes); foreach (var indexColumn in index.IndexColumns) { var indexColumnNode = XmlHelper.AddElement(indexColumnsNodes, "column"); XmlHelper.AddAttribute(indexColumnNode, "id", indexColumn.Id); XmlHelper.AddAttribute(indexColumnNode, "ascending", indexColumn.Ascending); XmlHelper.AddAttribute(indexColumnNode, "fieldid", indexColumn.FieldID); XmlHelper.AddAttribute(indexColumnNode, "sortorder", indexColumn.SortOrder); XmlHelper.AddLineBreak((XmlElement)indexColumnsNodes); } } var f = Path.Combine(folder, item.Name + ".indexes.xml"); WriteFileIfNeedBe(f, document.ToIndentedString(), generatedFileList); }
private static void SaveRelations(string folder, Entity item, List <string> generatedFileList) { var document = new XmlDocument(); document.LoadXml(@"<configuration type=""entity.relations"" id=""" + item.Id + @"""></configuration>"); XmlHelper.AddLineBreak((XmlElement)document.DocumentElement); foreach (var relation in item.RelationshipList) { var relationNode = XmlHelper.AddElement(document.DocumentElement, "relation"); XmlHelper.AddLineBreak((XmlElement)relationNode); XmlHelper.AddCData((XmlElement)relationNode, "summary", relation.Summary); XmlHelper.AddLineBreak((XmlElement)relationNode); XmlHelper.AddAttribute(relationNode, "id", relation.InternalId); XmlHelper.AddAttribute(relationNode, "childid", relation.ChildEntity.Id); XmlHelper.AddAttribute(relationNode, "isenforced", relation.IsEnforced); XmlHelper.AddAttribute(relationNode, "deleteaction", relation.DeleteAction.ToString()); XmlHelper.AddAttribute(relationNode, "rolename", relation.RoleName); XmlHelper.AddLineBreak((XmlElement)document.DocumentElement); //Process the columns var relationColumnsNodes = XmlHelper.AddElement((XmlElement)relationNode, "relationfieldset") as XmlElement; XmlHelper.AddLineBreak((XmlElement)relationColumnsNodes); foreach (var relationField in relation.FieldMapList()) { var realtionFieldNode = XmlHelper.AddElement(relationColumnsNodes, "field"); XmlHelper.AddAttribute(realtionFieldNode, "id", relationField.Id); XmlHelper.AddAttribute(realtionFieldNode, "sourcefieldid", relationField.SourceFieldId); XmlHelper.AddAttribute(realtionFieldNode, "targetfieldid", relationField.TargetFieldId); XmlHelper.AddLineBreak((XmlElement)relationColumnsNodes); } } var f = Path.Combine(folder, item.Name + ".relations.xml"); WriteFileIfNeedBe(f, document.ToIndentedString(), generatedFileList); }
/// <summary> /// Saves Stored Procedures to disk /// </summary> private static void SaveToDisk(nHydrateModel modelRoot, IEnumerable <Entity> list, string rootFolder, nHydrateDiagram diagram, List <string> generatedFileList) { var folder = Path.Combine(rootFolder, FOLDER_ET); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } #region Save other parameter/field information foreach (var item in list) { var document = new XmlDocument(); document.LoadXml(@"<configuration type=""entity"" name=""" + item.Name + @"""></configuration>"); XmlHelper.AddLineBreak(document.DocumentElement); XmlHelper.AddCData(document.DocumentElement, "summary", item.Summary); XmlHelper.AddLineBreak(document.DocumentElement); XmlHelper.AddAttribute(document.DocumentElement, "id", item.Id); XmlHelper.AddAttribute(document.DocumentElement, "allowcreateaudit", item.AllowCreateAudit); XmlHelper.AddAttribute(document.DocumentElement, "allowmodifyaudit", item.AllowModifyAudit); XmlHelper.AddAttribute(document.DocumentElement, "allowtimestamp", item.AllowTimestamp); XmlHelper.AddAttribute(document.DocumentElement, "codefacade", item.CodeFacade); XmlHelper.AddAttribute(document.DocumentElement, "immutable", item.Immutable); XmlHelper.AddAttribute(document.DocumentElement, "isassociative", item.IsAssociative); XmlHelper.AddAttribute(document.DocumentElement, "typedentity", item.TypedEntity.ToString()); XmlHelper.AddAttribute(document.DocumentElement, "schema", item.Schema); XmlHelper.AddAttribute(document.DocumentElement, "generatesdoublederived", item.GeneratesDoubleDerived); XmlHelper.AddAttribute(document.DocumentElement, "isTenant", item.IsTenant); #region Fields { var fieldsNodes = XmlHelper.AddElement(document.DocumentElement, "fieldset") as XmlElement; XmlHelper.AddLineBreak((XmlElement)fieldsNodes); foreach (var field in item.Fields.OrderBy(x => x.Name)) { var fieldNode = XmlHelper.AddElement(fieldsNodes, "field"); XmlHelper.AddLineBreak((XmlElement)fieldNode); XmlHelper.AddCData((XmlElement)fieldNode, "summary", field.Summary); XmlHelper.AddLineBreak((XmlElement)fieldNode); XmlHelper.AddAttribute(fieldNode, "id", field.Id); XmlHelper.AddAttribute(fieldNode, "name", field.Name); XmlHelper.AddAttribute(fieldNode, "nullable", field.Nullable); XmlHelper.AddAttribute(fieldNode, "datatype", field.DataType.ToString()); XmlHelper.AddAttribute(fieldNode, "identity", field.Identity.ToString()); XmlHelper.AddAttribute(fieldNode, "codefacade", field.CodeFacade); XmlHelper.AddAttribute(fieldNode, "dataformatstring", field.DataFormatString); XmlHelper.AddAttribute(fieldNode, "default", field.Default); XmlHelper.AddAttribute(fieldNode, "defaultisfunc", field.DefaultIsFunc); XmlHelper.AddAttribute(fieldNode, "formula", field.Formula); XmlHelper.AddAttribute(fieldNode, "isindexed", field.IsIndexed); XmlHelper.AddAttribute(fieldNode, "isprimarykey", field.IsPrimaryKey); XmlHelper.AddAttribute(fieldNode, "Iscalculated", field.IsCalculated); XmlHelper.AddAttribute(fieldNode, "isunique", field.IsUnique); XmlHelper.AddAttribute(fieldNode, "length", field.Length); XmlHelper.AddAttribute(fieldNode, "scale", field.Scale); XmlHelper.AddAttribute(fieldNode, "sortorder", field.SortOrder); XmlHelper.AddAttribute(fieldNode, "isreadonly", field.IsReadOnly); XmlHelper.AddAttribute(fieldNode, "obsolete", field.Obsolete); XmlHelper.AddLineBreak((XmlElement)fieldsNodes); } XmlHelper.AddLineBreak((XmlElement)document.DocumentElement); } #endregion XmlHelper.AddLineBreak(document.DocumentElement); var f = Path.Combine(folder, item.Name + ".configuration.xml"); WriteFileIfNeedBe(f, document.ToIndentedString(), generatedFileList); //Save other files SaveEntityIndexes(folder, item, generatedFileList); SaveRelations(folder, item, generatedFileList); SaveEntityStaticData(folder, item, generatedFileList); } #endregion WriteReadMeFile(folder, generatedFileList); }
/// <summary> /// Saves Views to disk /// </summary> private static void SaveToDisk(nHydrateModel modelRoot, IEnumerable <View> list, string rootFolder, nHydrateDiagram diagram, List <string> generatedFileList) { var folder = Path.Combine(rootFolder, FOLDER_VW); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } foreach (var item in list) { var f = Path.Combine(folder, item.Name + ".sql"); WriteFileIfNeedBe(f, item.SQL, generatedFileList); } #region Save other parameter/field information foreach (var item in list) { var document = new XmlDocument(); document.LoadXml(@"<configuration type=""view"" name=""" + item.Name + @"""></configuration>"); XmlHelper.AddLineBreak(document.DocumentElement); XmlHelper.AddCData(document.DocumentElement, "summary", item.Summary); XmlHelper.AddLineBreak(document.DocumentElement); XmlHelper.AddAttribute(document.DocumentElement, "id", item.Id); XmlHelper.AddAttribute(document.DocumentElement, "codefacade", item.CodeFacade); XmlHelper.AddAttribute(document.DocumentElement, "schema", item.Schema); XmlHelper.AddAttribute(document.DocumentElement, "generatesdoublederived", item.GeneratesDoubleDerived); var fieldsNodes = XmlHelper.AddElement(document.DocumentElement, "fieldset") as XmlElement; XmlHelper.AddLineBreak((XmlElement)fieldsNodes); foreach (var field in item.Fields.OrderBy(x => x.Name)) { var fieldNode = XmlHelper.AddElement(fieldsNodes, "field"); XmlHelper.AddLineBreak((XmlElement)fieldNode); XmlHelper.AddCData((XmlElement)fieldNode, "summary", field.Summary); XmlHelper.AddLineBreak((XmlElement)fieldNode); XmlHelper.AddAttribute(fieldNode, "id", field.Id); XmlHelper.AddAttribute(fieldNode, "name", field.Name); XmlHelper.AddAttribute(fieldNode, "nullable", field.Nullable); XmlHelper.AddAttribute(fieldNode, "datatype", field.DataType.ToString()); XmlHelper.AddAttribute(fieldNode, "codefacade", field.CodeFacade); XmlHelper.AddAttribute(fieldNode, "default", field.Default); XmlHelper.AddAttribute(fieldNode, "length", field.Length); XmlHelper.AddAttribute(fieldNode, "scale", field.Scale); XmlHelper.AddAttribute(fieldNode, "isprimarykey", field.IsPrimaryKey); XmlHelper.AddLineBreak((XmlElement)fieldsNodes); } XmlHelper.AddLineBreak(document.DocumentElement); var f = Path.Combine(folder, item.Name + ".configuration.xml"); WriteFileIfNeedBe(f, document.ToIndentedString(), generatedFileList); } #endregion WriteReadMeFile(folder, generatedFileList); }