internal void LoadMetadataJsonFile(string jsonFilePath) { string jsonFileName = Path.GetFileName(jsonFilePath); StatusText = $"Loading {jsonFileName}"; ERInformation entityRelations = null; try { entityRelations = ERInformationUtil.LoadRelationsFromDataFile(jsonFilePath); } catch (Exception ex) { StatusText = $"Failed to load {jsonFileName} - " + ex.ToString(); return; } this.entityRelations = entityRelations; if (File.Exists(jsonFilePath.Replace(".json", ".htm"))) { triggerHtmlFilePath = jsonFilePath.Replace(".json", ".htm"); } RefreshListView(); StatusText = $"{Path.GetFileName(jsonFileName)} loaded."; }
private static void DumpERRelationsInSpecFile(StreamWriter specWriter, ERInformation entityRelations) { // Add all relationship information in the scheme (spec file) at the end foreach (ERRelation relation in entityRelations.ERRelations.Distinct().OrderBy(obj => obj.EntityOne)) { specWriter.WriteLine("{0,50} 1-n {1}.{2}", relation.EntityOne, relation.EntityMany, relation.LookupField); } }
private void RefreshListView() { lvEntity.Items.Clear(); lvEntity.Columns[0].Width = lvEntity.Width - SystemInformation.VerticalScrollBarWidth - 5; foreach (string entiyName in entityRelations.ListEntities()) { ListViewItem item = new ListViewItem(entiyName); bool entityInSkipList = ERInformation.IsEntityInSkipList(entiyName); item.Checked = !entityInSkipList; lvEntity.Items.Add(item); } }
internal static ERInformation LoadRelationsFromDataFile(string fileNamePath) { string relationJsonText; using (StreamReader jsonTextReader = new StreamReader(fileNamePath)) { relationJsonText = jsonTextReader.ReadToEnd(); } ERInformation entityRelations = JsonConvert.DeserializeObject <ERInformation>(relationJsonText); return(entityRelations); }
internal static void AggregateERInformationForAllEntities(string organizationUrl, List <EntityMetadata> allEntitiesMetadata, StreamWriter jsonWriter, StreamWriter specWriter) { // allEntitiesMetadata has all metadata now. // Aggregate all entities' ERInformation and create a final ERInformation object, then persist the data in json. ERInformation erInformationForAllEntities = new ERInformation(); erInformationForAllEntities.OrganizationUrl = organizationUrl; erInformationForAllEntities.CreatedOn = DateTime.UtcNow; foreach (EntityMetadata entityMetadata in allEntitiesMetadata) { erInformationForAllEntities.AddMetadata(entityMetadata.ERInformationForThisEntity); } string relationsJson = JsonConvert.SerializeObject(erInformationForAllEntities, Formatting.Indented); jsonWriter.WriteLine(relationsJson); DumpERRelationsInSpecFile(specWriter, erInformationForAllEntities); }
internal void AddMetadata(ERInformation erInformationToBeAdded) { EREntitieAttributes.AddRange(erInformationToBeAdded.EREntitieAttributes); ERRelations.AddRange(erInformationToBeAdded.ERRelations); }