コード例 #1
0
        public ActionResult Edit(GDSContactVM gdsContactVM, FormCollection formCollection)
        {
            //Check Access Rights to Domain
            if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //Convert GDSRequestTypeIds to GDSRequestTypes
            List <GDSRequestType> gdsContactRequestTypes = new List <GDSRequestType>();
            string key = "GDSContact.GDSRequestTypeIds";

            if (formCollection[key] != null)
            {
                List <int> gdsContactRequestTypeIds = formCollection[key].Split(',').Select(Int32.Parse).ToList();
                foreach (int gdsContactRequestTypeId in gdsContactRequestTypeIds)
                {
                    GDSRequestTypeRepository gdsRequestTypeRepository = new GDSRequestTypeRepository();
                    GDSRequestType           gdsRequestType           = gdsRequestTypeRepository.GetGDSRequestType(gdsContactRequestTypeId);
                    if (gdsRequestType != null)
                    {
                        gdsContactRequestTypes.Add(gdsRequestType);
                    }
                }
            }
            gdsContactVM.GDSContact.GDSRequestTypes = gdsContactRequestTypes;

            //Update  Model from Form
            try
            {
                UpdateModel(gdsContactVM);
            }
            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
            {
                gdsContactRepository.Update(gdsContactVM.GDSContact);
            }
            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"));
        }