public void AssociateWithTemplate(TreeListViewRow destination) { try { foreach (var templateItem in TemplateViewModelLocator.GetTemplateVM().SelectedItems) { switch (Globals.DraggedItem.Type) { case "Property": foreach (var propertyItem in PropertyViewModelLocator.GetPropertyVM().SelectedItems) { TemplateAssociationModel templateAssociationItem = new TemplateAssociationModel { ID = Guid.NewGuid(), IsNew = true, IsChanged = false, IsDeleted = false, Project_ID = Globals.Project_ID, Template_ID = templateItem.ID, AssociationType = Globals.DraggedItem.Type, ChildAssociations = new TD.ObservableItemCollection <TemplateAssociationModel>(), }; templateAssociationItem.Association_ID = propertyItem.ID; templateAssociationItem.Name = propertyItem.PropertyName; templateAssociationItem.Description = propertyItem.Description; templateAssociationItem.AssociationType_ID = propertyItem.PropertyType_ID; templateAssociationItem.Value = propertyItem.Value; foreach (var childItem in propertyItem.ChildProperties) { TemplateAssociationModel templateAssociationChildItem = new TemplateAssociationModel { IsNew = true, IsChanged = false, IsDeleted = false, AssociationType = "Property", ID = Guid.NewGuid(), Project_ID = Globals.Project_ID, Template_ID = templateItem.ID, Association_ID = childItem.ID, Name = childItem.PropertyName, Description = childItem.Description, AssociationType_ID = childItem.PropertyType_ID, Value = childItem.Value, ChildAssociations = new TD.ObservableItemCollection <TemplateAssociationModel>() }; templateAssociationItem.ChildAssociations.Add(templateAssociationChildItem); } TemplateAssociations.Add(templateAssociationItem); } break; } } } catch (Exception ex) { RadWindow.Alert(ex.Message); } //} }
private void Load(Guid?associationParent_ID) { // Check if the classes and properties have ben loaded. Necessary because of the various background workers try { using (EDBEntities eDB = new EDBEntities()) { foreach (tblTemplateAssociation Rec in (from o in eDB.tblTemplateAssociations where (o.Project_ID == Globals.Project_ID) select o)) { TemplateAssociationModel templateAssociationItem = new TemplateAssociationModel { ID = Rec.ID, Project_ID = Rec.Project_ID, Template_ID = Rec.Template_ID, Association_ID = Rec.Association_ID, Value = Rec.Value, AssociationType = Rec.AssociationType, IsChanged = false, IsNew = false, IsDeleted = false, ChildAssociations = new TD.ObservableItemCollection <TemplateAssociationModel>() }; switch (templateAssociationItem.AssociationType) { case "Property": var propertyItem = PropertyViewModelLocator.GetPropertyVM().GetProperty(templateAssociationItem.Association_ID, null); if (propertyItem != null) { templateAssociationItem.Name = propertyItem.PropertyName; templateAssociationItem.Description = propertyItem.Description; templateAssociationItem.AssociationType_ID = propertyItem.PropertyType_ID; foreach (var childItem in propertyItem.ChildProperties) { TemplateAssociationModel item = new TemplateAssociationModel { ID = Rec.ID, Project_ID = childItem.Project_ID, Template_ID = templateAssociationItem.Template_ID, Association_ID = childItem.ID, Name = childItem.PropertyName, Description = childItem.Description, AssociationType = "Property", AssociationType_ID = childItem.PropertyType_ID, ChildAssociations = new TD.ObservableItemCollection <TemplateAssociationModel>() }; templateAssociationItem.ChildAssociations.Add(item); } } else { throw new System.InvalidOperationException(String.Format("Association without source\nProperty ID: {0}\nFix in database", templateAssociationItem.Association_ID)); } break; case "TemplateProperty": break; } TemplateAssociations.Add(templateAssociationItem); } } } catch (Exception ex) { Application.Current.Dispatcher.Invoke((Action) delegate { RadWindow.Alert(ex.Message); }); } }