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

            OptionalFieldLanguageVM optionalFieldLanguageVM = new OptionalFieldLanguageVM();

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

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

            //Set Default Option Size
            OptionalFieldLanguage optionalFieldLanguage = new OptionalFieldLanguage();

            optionalFieldLanguage.OptionalFieldId         = id;
            optionalFieldLanguage.OptionalFieldSize       = 0;
            optionalFieldLanguageVM.OptionalFieldLanguage = optionalFieldLanguage;

            //Languages
            optionalFieldLanguageVM.OptionalFieldLanguages = new SelectList(optionalFieldLanguageRepository.GetAllAvailableLanguages(id), "LanguageCode", "LanguageName");

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

            OptionalFieldLanguage optionalFieldLanguage = new OptionalFieldLanguage();

            optionalFieldLanguage = optionalFieldLanguageRepository.GetItem(id, languageCode);

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

            OptionalFieldLanguageVM optionalFieldLanguageVM = new OptionalFieldLanguageVM();

            optionalFieldLanguageVM.OptionalFieldLanguage = optionalFieldLanguage;

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

            ViewData["OptionalFieldName"] = optionalField.OptionalFieldName;

            return(View(optionalFieldLanguageVM));
        }
        // GET: View A Single OptionalFieldLanguage
        public ActionResult View(int id, string languageCode)
        {
            OptionalFieldLanguage optionalFieldLanguage = optionalFieldLanguageRepository.GetItem(id, languageCode);

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

            OptionalFieldLanguageVM optionalFieldLanguageVM = new OptionalFieldLanguageVM();

            optionalFieldLanguageVM.OptionalFieldLanguage = optionalFieldLanguage;

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

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

            //Languages
            optionalFieldLanguageVM.OptionalFieldLanguages = new SelectList(optionalFieldLanguageRepository.GetAllAvailableLanguages(id), "LanguageCode", "LanguageName");

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

            OptionalFieldLanguage optionalFieldLanguage = new OptionalFieldLanguage();

            optionalFieldLanguage = optionalFieldLanguageRepository.GetItem(
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldId,
                optionalFieldLanguageVM.OptionalFieldLanguage.LanguageCode
                );

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

            //Update Model from Form
            try
            {
                UpdateModel(optionalFieldLanguageVM);
            }
            catch
            {
                string n = "";
                foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        n += error.ErrorMessage;
                    }
                }
                ViewData["Message"] = "ValidationError : " + n;
                return(View("Error"));
            }

            //Database Update
            try
            {
                optionalFieldLanguageRepository.Update(optionalFieldLanguageVM);
            }
            catch (SqlException ex)
            {
                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }

            return(RedirectToAction("List", new { id = optionalFieldLanguage.OptionalFieldId }));
        }
        //Add to DB
        public void Add(OptionalFieldLanguageVM optionalFieldLanguageVM)
        {
            string adminUserGuid = HttpContext.Current.User.Identity.Name.Split(new[] { '|' })[0];

            db.spDesktopDataAdmin_InsertOptionalFieldLanguage_v1(
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldId,
                optionalFieldLanguageVM.OptionalFieldLanguage.LanguageCode,
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldLabel,
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldTooltip,
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldDefaultText,
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldValidationRegularExpression,
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldValidationFailureMessage,
                optionalFieldLanguageVM.OptionalFieldLanguage.OptionalFieldSize,
                adminUserGuid
                );
        }
        // GET: Edit A Single OptionalFieldValue
        public ActionResult Edit(int id, string languageCode)
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            OptionalFieldLanguage optionalFieldLanguage = optionalFieldLanguageRepository.GetItem(id, languageCode);

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

            OptionalFieldLanguageVM optionalFieldLanguageVM = new OptionalFieldLanguageVM();

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

            optionalFieldLanguageVM.OptionalFieldLanguages = new SelectList(
                languageRepository.GetAllLanguages().ToList(),
                "LanguageCode",
                "LanguageName",
                optionalFieldLanguage.LanguageCode
                );

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

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

            optionalFieldLanguageVM.OptionalFieldLanguage = optionalFieldLanguage;

            return(View(optionalFieldLanguageVM));
        }