Beispiel #1
0
        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 }));
        }
Beispiel #2
0
        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 }));
        }