public void AddMissingDataListItems(IList <IDataListVerifyPart> parts, bool async) { IList <IDataListItemModel> tmpRecsetList = new List <IDataListItemModel>(); foreach (var part in parts) { if (part.IsScalar) { if (ScalarCollection.FirstOrDefault(c => c.Name == part.Field) == null) { IDataListItemModel scalar = DataListItemModelFactory.CreateDataListModel(part.Field, part.Description, enDev2ColumnArgumentDirection .None); if (ScalarCollection.Count > ScalarCollection.Count - 1) { ScalarCollection.Insert(ScalarCollection.Count - 1, scalar); } else { ScalarCollection.Insert(ScalarCollection.Count, scalar); } } } else { IDataListItemModel recsetToAddTo = RecsetCollection. FirstOrDefault(c => c.Name == part.Recordset && c.IsRecordset); IDataListItemModel tmpRecset = tmpRecsetList.FirstOrDefault(c => c.Name == part.Recordset); if (recsetToAddTo != null) { if (recsetToAddTo.Children.FirstOrDefault(c => c.Name == part.Field) == null) { IDataListItemModel child = DataListItemModelFactory.CreateDataListModel(part.Field, part.Description, recsetToAddTo); if (recsetToAddTo.Children.Count > 0) { recsetToAddTo.Children.Insert(recsetToAddTo.Children.Count - 1, child); } else { recsetToAddTo.Children.Add(child); } } } else if (tmpRecset != null) { IDataListItemModel child = DataListItemModelFactory.CreateDataListModel (part.Field, part.Description, tmpRecset); child.Name = part.Recordset + "()." + part.Field; tmpRecset.Children.Add(child); } else { IDataListItemModel recset = DataListItemModelFactory.CreateDataListModel (part.Recordset, part.Description, enDev2ColumnArgumentDirection.None); tmpRecsetList.Add(recset); } } } foreach (var item in tmpRecsetList) { if (item.Children.Count == 0) { item.Children.Add(DataListItemModelFactory.CreateDataListModel(string.Empty, string.Empty, item)); } if (RecsetCollection.Count > 0) { RecsetCollection.Insert(RecsetCollection.Count - 1, item); } else { RecsetCollection.Add(item); } } WriteToResourceModel(); EventPublisher.Publish(new UpdateIntellisenseMessage()); RemoveBlankScalars(); RemoveBlankRecordsets(); RemoveBlankRecordsetFields(); if (parts.Count > 0) { AddBlankRow(null); } }
public void AddMissingDataListItems(IList <IDataListVerifyPart> parts, bool async) { IList <IDataListItemModel> tmpRecsetList = new List <IDataListItemModel>(); foreach (IDataListVerifyPart part in parts) { if (part.IsScalar) { IDataListItemModel scalar = DataListItemModelFactory.CreateDataListModel(part.Field, part.Description, enDev2ColumnArgumentDirection.None); ScalarCollection.Insert(ScalarCollection.Count - 1, scalar); Validator.Add(scalar); } else { IDataListItemModel recsetToAddTo = RecsetCollection.FirstOrDefault(c => c.Name == part.Recordset && c.IsRecordset); IDataListItemModel tmpRecset = tmpRecsetList.FirstOrDefault(c => c.Name == part.Recordset); if (recsetToAddTo != null) { IDataListItemModel child = DataListItemModelFactory.CreateDataListModel(part.Field, part.Description, recsetToAddTo); if (recsetToAddTo.Children.Count > 0) { recsetToAddTo.Children.Insert(recsetToAddTo.Children.Count - 1, child); } else { recsetToAddTo.Children.Add(child); } recsetToAddTo.Validator.Add(child); } else if (tmpRecset != null) { IDataListItemModel child = DataListItemModelFactory.CreateDataListModel(part.Field, part.Description, tmpRecset); tmpRecset.Children.Add(child); tmpRecset.Validator.Add(child); } else { IDataListItemModel recset = DataListItemModelFactory.CreateDataListModel(part.Recordset, part.Description, enDev2ColumnArgumentDirection.None); tmpRecsetList.Add(recset); } } } foreach (IDataListItemModel item in tmpRecsetList) { if (item.Children.Count == 0) { item.Children.Add(DataListItemModelFactory.CreateDataListModel(string.Empty, string.Empty, item)); } if (RecsetCollection.Count > 0) { RecsetCollection.Insert(RecsetCollection.Count - 1, item); } else { RecsetCollection.Add(item); } Validator.Add(item); } WriteToResourceModel(); Mediator.SendMessage(MediatorMessages.UpdateIntelisense, this); RemoveBlankScalars(); RemoveBlankRecordsets(); RemoveBlankRecordsetFields(); AddBlankRow(null); }