public ActionResult Edit(ReferenceTermViewModel model) { try { var referenceTerm = ImsiClient.Get <ReferenceTerm>(model.Id, null) as ReferenceTerm; if (referenceTerm == null) { TempData["error"] = Locale.ReferenceTermNotFound; return(RedirectToAction("Index")); } referenceTerm.CreationTime = DateTimeOffset.Now; referenceTerm.Mnemonic = model.Mnemonic; var result = this.ImsiClient.Update(referenceTerm); TempData["success"] = Locale.ReferenceTermUpdatedSuccessfully; return(RedirectToAction("ViewReferenceTerm", "ReferenceTerm", new { id = result.Key })); } catch (Exception e) { Trace.TraceError($"Unable to retrieve entity: { e }"); } TempData["error"] = Locale.UnableToUpdateReferenceTerm; return(RedirectToAction("ViewReferenceTerm", "ReferenceTerm", new { id = model.Id })); }
public ActionResult ViewReferenceTerm(Guid id) { try { var bundle = this.ImsiClient.Query <ReferenceTerm>(r => r.Key == id && r.ObsoletionTime == null, 0, null, true); bundle.Reconstitute(); var referenceTerm = bundle.Item.OfType <ReferenceTerm>().FirstOrDefault(r => r.Key == id && r.ObsoletionTime == null); if (referenceTerm == null) { TempData["error"] = Locale.ReferenceTermNotFound; return(RedirectToAction("Index")); } var conceptsBundle = this.ImsiClient.Query <Concept>(c => c.ReferenceTerms.Any(r => r.ReferenceTermKey == referenceTerm.Key) && c.ObsoletionTime == null); conceptsBundle.Reconstitute(); var concepts = conceptsBundle.Item.OfType <Concept>().Where(c => c.ReferenceTerms.Any(r => r.ReferenceTermKey == referenceTerm.Key) && c.ObsoletionTime == null); foreach (var concept in concepts) { concept.LoadProperty <ConceptClass>(nameof(Concept.Class)); } var viewModel = new ReferenceTermViewModel(referenceTerm) { Concepts = concepts.Select(c => new ConceptViewModel(c)).ToList() }; return(View(viewModel)); } catch (Exception e) { Trace.TraceError($"Unable to retrieve reference term: {e}"); this.TempData["error"] = Locale.UnexpectedErrorMessage; } return(RedirectToAction("Index")); }