public ActionResult Edit(int id, FormCollection collection) { //Get Item From Database ApprovalGroup group = new ApprovalGroup(); group = approvalGroupRepository.GetGroup(id); //Check Exists if (group == null) { ViewData["ActionMethod"] = "EditPost"; return(View("RecordDoesNotExistError")); } //Check Access RolesRepository rolesRepository = new RolesRepository(); if (!rolesRepository.HasWriteAccessToApprovalGroup(group.ApprovalGroupId)) { return(View("Error")); } //Update Model From Form + Validate against DB try { UpdateModel(group); } 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")); } if (group.HierarchyType != "Multiple") { //ClientSubUnitTravelerType has extra field string hierarchyCode = group.HierarchyCode; if (group.HierarchyType == "ClientSubUnitTravelerType") { group.ClientSubUnitGuid = hierarchyCode; //ClientSubUnitTravelerType has 2 primarykeys } //Check Access Rights to Hierarchy HierarchyRepository hierarchyRepository = new HierarchyRepository(); if (!hierarchyRepository.AdminHasDomainHierarchyWriteAccess(group.HierarchyType, hierarchyCode, group.SourceSystemCode, groupName)) { ViewData["Message"] = "You cannot add to this hierarchy item"; return(View("Error")); } } //Create Approval Group Approval Type Items from Post values System.Data.Linq.EntitySet <ApprovalGroupApprovalTypeItem> approvalGroupApprovalTypeItems = new System.Data.Linq.EntitySet <ApprovalGroupApprovalTypeItem>(); foreach (string key in collection) { if (key.StartsWith("ApprovalGroupApprovalTypeItem") && !string.IsNullOrEmpty(collection[key])) { string[] values = collection[key].Split(','); if (values[0] != null && values[1] != null && !string.IsNullOrEmpty(values[0]) && !string.IsNullOrEmpty(values[1])) { ApprovalGroupApprovalTypeItem approvalGroupApprovalTypeItem = new ApprovalGroupApprovalTypeItem() { ApprovalGroupApprovalTypeId = int.Parse(values[0]), ApprovalGroupApprovalTypeItemValue = values[1] }; approvalGroupApprovalTypeItems.Add(approvalGroupApprovalTypeItem); } } } //Remove Approval Group Approval Type Items if not set, otherwise add new ones in group.ApprovalGroupApprovalTypeItems = (approvalGroupApprovalTypeItems != null && approvalGroupApprovalTypeItems.Count > 0) ? approvalGroupApprovalTypeItems : null; //Database Update try { approvalGroupRepository.Edit(group); } catch (SqlException ex) { //Versioning Error if (ex.Message == "SQLVersioningError") { ViewData["ReturnURL"] = "/ApprovalGroup.mvc/Edit/" + group.ApprovalGroupId.ToString(); return(View("VersionError")); } 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("ListUnDeleted")); }
public ActionResult Create(ApprovalGroup group, FormCollection collection) { //Check Access Rights to Domain if (!hierarchyRepository.AdminHasDomainWriteAccess(groupName)) { ViewData["Message"] = "You do not have access to this item"; return(View("Error")); } //Check Access Rights to Domain Hierarchy if (!hierarchyRepository.AdminHasDomainHierarchyWriteAccess(group.HierarchyType, group.HierarchyCode, group.SourceSystemCode, groupName)) { ViewData["Message"] = "You cannot add to this hierarchy item"; return(View("Error")); } //Update Model From Form + Validate against DB try { UpdateModel(group); } 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")); } //ClientSubUnitTravelerType has extra field string hierarchyCode = group.HierarchyCode; if (group.HierarchyType == "ClientSubUnitTravelerType") { group.ClientSubUnitGuid = hierarchyCode; //ClientSubUnitTravelerType has 2 primarykeys } //Create Approval Group Approval Type Items from Post values System.Data.Linq.EntitySet <ApprovalGroupApprovalTypeItem> approvalGroupApprovalTypeItems = new System.Data.Linq.EntitySet <ApprovalGroupApprovalTypeItem>(); foreach (string key in collection) { if (key.StartsWith("ApprovalGroupApprovalTypeItem") && !string.IsNullOrEmpty(collection[key])) { string[] values = collection[key].Split(','); if (values[0] != null && values[1] != null && !string.IsNullOrEmpty(values[0]) && !string.IsNullOrEmpty(values[1])) { ApprovalGroupApprovalTypeItem approvalGroupApprovalTypeItem = new ApprovalGroupApprovalTypeItem() { ApprovalGroupApprovalTypeId = int.Parse(values[0]), ApprovalGroupApprovalTypeItemValue = values[1] }; approvalGroupApprovalTypeItems.Add(approvalGroupApprovalTypeItem); } } } //Add Approval Group Approval Type Items group.ApprovalGroupApprovalTypeItems = approvalGroupApprovalTypeItems; //Database Update try { approvalGroupRepository.Add(group); } catch (SqlException ex) { //Non-Unique Name if (ex.Message == "NonUniqueName") { return(View("NonUniqueNameError")); } 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")); } ViewData["NewSortOrder"] = 0; return(RedirectToAction("ListUnDeleted")); }