public ActionResult Edit(EditConceptSetModel model) { try { var conceptSet = this.GetConceptSet(model.Id); if (conceptSet == null) { TempData["error"] = Locale.ConceptSetNotFound; return(RedirectToAction("Index")); } //check oid if (!conceptSet.Oid.Equals(model.Oid)) { var exists = this.ImsiClient.Query <ConceptSet>(c => c.Oid == model.Oid).Item.OfType <ConceptSet>().Any(); if (exists) { ModelState.AddModelError("Oid", Locale.OidMustBeUnique); } } //check mnemonic if (!string.Equals(conceptSet.Mnemonic, model.Mnemonic)) { var duplicate = DoesConceptSetExist(model.Mnemonic); if (duplicate) { ModelState.AddModelError("Mnemonic", Locale.MnemonicMustBeUnique); } } if (ModelState.IsValid) { conceptSet = model.ToConceptSet(conceptSet); var result = this.ImsiClient.Update <ConceptSet>(conceptSet); TempData["success"] = Locale.ConceptSetUpdatedSuccessfully; return(RedirectToAction("ViewConceptSet", new { id = result.Key })); } } catch (Exception e) { Trace.TraceError($"Unable to update concept set: {e}"); this.TempData["error"] = Locale.UnableToUpdateConceptSet; } TempData["error"] = Locale.UnableToUpdateConceptSet; return(View(model)); }
public ActionResult Edit(Guid id) { try { var conceptSet = this.GetConceptSet(id); if (conceptSet == null) { this.TempData["error"] = Locale.ConceptSetNotFound; return(RedirectToAction("Index")); } var concepts = conceptSet.ConceptsXml.Select(c => this.GetConcept(c, null)).Where(concept => concept != null).ToList(); foreach (var concept in concepts) { if (concept.Class == null && concept.ClassKey.HasValue && concept.ClassKey.Value != Guid.Empty) { concept.Class = this.GetConceptClass(concept.ClassKey.Value); } } var model = new EditConceptSetModel(conceptSet) { Concepts = concepts.Select(c => new ConceptViewModel(c, id)).ToList() }; return(View(model)); } catch (Exception e) { Trace.TraceError($"Unable to retrieve concept set: {e}"); this.TempData["error"] = Locale.UnexpectedErrorMessage; } return(RedirectToAction("ViewConceptSet", new { id = id })); }