public ActionResult Edit(Guid id, Guid refTermId) { try { var bundle = this.ImsiClient.Query <ReferenceTerm>(r => r.Key == refTermId && r.ObsoletionTime == null, 0, null, true); bundle.Reconstitute(); var referenceTerm = bundle.Item.OfType <ReferenceTerm>().FirstOrDefault(r => r.Key == refTermId && r.ObsoletionTime == null); if (referenceTerm == null) { TempData["error"] = Locale.ReferenceTermNotFound; return(RedirectToAction("Index", "ReferenceTerm")); } var name = referenceTerm.DisplayNames.FirstOrDefault(r => r.Key == id); if (name == null) { TempData["error"] = Locale.ReferenceTermNameNotFound; return(RedirectToAction("Edit", "ReferenceTerm", new { referenceTerm.Key })); } var model = new EditReferenceTermNameModel(referenceTerm, name) { LanguageList = LanguageUtil.GetLanguageList().ToSelectList("DisplayName", "TwoLetterCountryCode", r => r.TwoLetterCountryCode == name.Language, true).ToList(), Name = name.Name, TwoLetterCountryCode = name.Language }; return(View(model)); } catch (Exception e) { Trace.TraceError($"Unable to retrieve reference term: { e }"); } this.TempData["error"] = Locale.UnableToRetrieveReferenceTerm; return(RedirectToAction("ViewReferenceTerm", "ReferenceTerm", new { id })); }
public ActionResult Edit(EditReferenceTermNameModel model) { try { var referenceTerm = ImsiClient.Get <ReferenceTerm>(model.ReferenceTermId.Value, null) as ReferenceTerm; if (referenceTerm == null) { TempData["error"] = Locale.ReferenceTermNotFound; return(RedirectToAction("Index", "ReferenceTerm")); } var index = referenceTerm.DisplayNames.FindIndex(c => c.Key == model.Id); if (index == -1) { TempData["error"] = Locale.ReferenceTermNameNotFound; return(RedirectToAction("Edit", "ReferenceTerm", new { referenceTerm.Key })); } referenceTerm.DisplayNames[index].Language = model.TwoLetterCountryCode; referenceTerm.DisplayNames[index].Name = model.Name; var result = this.ImsiClient.Update <ReferenceTerm>(referenceTerm); TempData["success"] = Locale.ReferenceTermNameUpdatedSuccessfully; return(RedirectToAction("Edit", "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.ReferenceTermId })); }