// GET: Edit A Single OptionalFieldLookupValue
        public ActionResult Edit(int id)
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            OptionalFieldLookupValue optionalFieldLookupValue = optionalFieldLookupValueRepository.GetItem(id);

            //Check Exists
            if (optionalFieldLookupValue == null)
            {
                ViewData["ActionMethod"] = "EditGet";
                return(View("RecordDoesNotExistError"));
            }

            OptionalFieldLookupValueVM optionalFieldLookupValueVM = new OptionalFieldLookupValueVM();

            //Language
            OptionalFieldLookupValueLanguage optionalFieldLookupValueLanguage = new OptionalFieldLookupValueLanguage();

            optionalFieldLookupValueLanguage = optionalFieldLookupValueLanguageRepository.GetItem(optionalFieldLookupValue.OptionalFieldLookupValueId);
            if (optionalFieldLookupValueLanguage != null)
            {
                optionalFieldLookupValueVM.OptionalFieldLookupValueLanguage = optionalFieldLookupValueLanguage;
            }

            //Get the Languages
            LanguageRepository languageRepository = new LanguageRepository();

            optionalFieldLookupValueVM.OptionalFieldLookupValueLanguages = new SelectList(
                languageRepository.GetAllLanguages().ToList(),
                "LanguageCode",
                "LanguageName",
                optionalFieldLookupValueLanguage.LanguageCode
                );

            //Need the name for breadcrumbs
            OptionalFieldRepository optionalFieldRespository = new OptionalFieldRepository();
            OptionalField           optionalField            = optionalFieldRespository.GetItem(optionalFieldLookupValue.OptionalFieldId);

            if (optionalField != null)
            {
                ViewData["OptionalFieldName"] = optionalField.OptionalFieldName;
            }

            optionalFieldLookupValueVM.OptionalFieldLookupValue = optionalFieldLookupValue;

            return(View(optionalFieldLookupValueVM));
        }