// GET: Edit A Single OptionalField
        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"));
            }

            OptionalField optionalField = optionalFieldRepository.GetItem(id);

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

            OptionalFieldVM optionalFieldVM = new OptionalFieldVM();

            //Get the Optional Field Style
            OptionalFieldStyleRepository optionalFieldStyleRepository = new OptionalFieldStyleRepository();

            optionalFieldVM.OptionalFieldStyles = new SelectList(
                optionalFieldStyleRepository.GetAllOptionalFieldStylesQueryable().ToList(),
                "OptionalFieldStyleId",
                "OptionalFieldStyleDescription",
                optionalField.OptionalFieldStyleId
                );

            optionalFieldVM.OptionalField = optionalField;

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

            OptionalField optionalField = new OptionalField();

            optionalField = optionalFieldRepository.GetItem(id);

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

            OptionalFieldVM optionalFieldVM = new OptionalFieldVM();

            //Get the Optional Field Style
            OptionalFieldStyleRepository optionalFieldStyleRepository = new OptionalFieldStyleRepository();

            optionalField.OptionalFieldStyle = optionalFieldStyleRepository.GetStyle(optionalField.OptionalFieldStyleId);

            optionalFieldVM.OptionalField = optionalField;

            return(View(optionalFieldVM));
        }
        // GET: View A Single OptionalField
        public ActionResult View(int id)
        {
            OptionalField optionalField = optionalFieldRepository.GetItem(id);

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

            OptionalFieldVM optionalFieldVM = new OptionalFieldVM();

            //Get the Optional Field Style
            OptionalFieldStyleRepository optionalFieldStyleRepository = new OptionalFieldStyleRepository();

            optionalField.OptionalFieldStyle = optionalFieldStyleRepository.GetStyle(optionalField.OptionalFieldStyleId);

            optionalFieldVM.OptionalField = optionalField;

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

            OptionalFieldVM optionalFieldVM = new OptionalFieldVM();
            OptionalField   optionalField   = new OptionalField();

            OptionalFieldStyle optionalFieldStyle = new OptionalFieldStyle();

            optionalField.OptionalFieldStyle = optionalFieldStyle;
            optionalFieldVM.OptionalField    = optionalField;

            OptionalFieldStyleRepository optionalFieldStyleRepository = new OptionalFieldStyleRepository();

            optionalFieldVM.OptionalFieldStyles = optionalFieldStyleRepository.GetAllOptionalFieldStyles().ToList();

            return(View(optionalFieldVM));
        }