private void UpdateConstraint(DB.GreenTemplate aTemplate, ConstraintViewModel aViewModel, DB.GreenConstraint aParentConstraint = null) { if ((aViewModel.hasGreenConstraint || aViewModel.isDeleted) && aViewModel.greenConstraintId.HasValue) { this.UpdateConstraint(aViewModel); } if (aViewModel.hasGreenConstraint && aViewModel.greenConstraintId.HasValue == false && aViewModel.isDeleted == false) //Is New { DB.GreenConstraint lNewConstraint = this.AddNewConstraint(aViewModel); if (aParentConstraint != null) { aParentConstraint.ChildGreenConstraints.Add(lNewConstraint); } aTemplate.ChildGreenConstraints.Add(lNewConstraint); foreach (ConstraintViewModel lChild in aViewModel.children) { this.UpdateConstraint(aTemplate, lChild, lNewConstraint); } } else { foreach (ConstraintViewModel lChild in aViewModel.children) { this.UpdateConstraint(aTemplate, lChild); } } }
public void MapViewModelToEntity(GreenTemplateViewModel aModel) { DB.GreenTemplate lTemplate = this.GetOrCreateGreenTemplate(aModel); foreach (ConstraintViewModel lConstraint in aModel.childConstraints) { this.UpdateConstraint(lTemplate, lConstraint); } }
private DB.GreenTemplate GetOrCreateGreenTemplate(GreenTemplateViewModel aModel) { DB.GreenTemplate lTemplate = _tdb.GreenTemplates.DefaultIfEmpty(null).SingleOrDefault(gt => gt.Id == aModel.Id); if (lTemplate == null) { lTemplate = new DB.GreenTemplate() { Name = aModel.Name, TemplateId = aModel.TemplateId }; _tdb.GreenTemplates.AddObject(lTemplate); } return(lTemplate); }
public GreenTemplateViewModel MapEntityToViewModel(DB.Template aTemplate) { DB.GreenTemplate lGreenTemplate = aTemplate.GreenTemplates.DefaultIfEmpty(null).FirstOrDefault(); GreenTemplateViewModel lViewModel = new GreenTemplateViewModel(); if (lGreenTemplate == null) { lViewModel.Name = this.GetCamelCaseTemplateName(aTemplate.Name); lViewModel.IsNew = true; } else { lViewModel.Id = lGreenTemplate.Id; lViewModel.Name = lGreenTemplate.Name; } lViewModel.TemplateId = aTemplate.Id; lViewModel.TemplateName = aTemplate.Name; lViewModel.TemplateOid = aTemplate.Oid; IGSettingsManager igManager = new IGSettingsManager(_tdb, aTemplate.OwningImplementationGuideId); IIGTypePlugin igTypePlugin = aTemplate.OwningImplementationGuide.ImplementationGuideType.GetPlugin(); string baseLink = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path) + "?Id="; int constraintCount = 0; foreach (DB.TemplateConstraint cDbConstraint in aTemplate.ChildConstraints .Where(y => y.Parent == null) .Where(c => c.IsPrimitive == false) .Where(c => string.IsNullOrEmpty(c.Value)).OrderBy(y => y.Order)) { ConstraintViewModel lConstraintView = this.BuildConstraint(_tdb, baseLink, igManager, igTypePlugin, cDbConstraint, constraintCount); this.CreateIfRequiredGreenTemplateTree(lConstraintView); lViewModel.childConstraints.Add(lConstraintView); } return(lViewModel); }