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")); }