private void submitButton_Click(object sender, EventArgs e) { if (!isFormValid) { MessageBox.Show(@"Fix the errors in the form and submit. " + System.Environment.NewLine + errorMessages.ToString()); return; } //Process added resources List <string> resourcesToAdd = new List <string>(); foreach (string resName in addedResource) { string name = resName; var resData = (from resource in loggedInUser.UserResources where resource.ResourceName == name select resource).FirstOrDefault(); if (resData != null) { resourcesToAdd.Add(resData.ResourceID); resourcesToAdd.Add("Y"); resourcesToAdd.Add(resData.ResourceMask.ToString()); } } List <string> resourcesToRemove = new List <string>(); foreach (string resName in removedResource) { string name = resName; var resData = (from resource in _UserVO.UserResources where resource.ResourceName == name select resource).FirstOrDefault(); if (resData != null) { resourcesToRemove.Add(resData.ResourceID); resourcesToRemove.Add("N"); resourcesToRemove.Add(resData.ResourceMask.ToString()); } } List <string> resourcesToModify = new List <string>(); resourcesToModify.AddRange(resourcesToAdd); resourcesToModify.AddRange(resourcesToRemove); List <string> limitsToModify = new List <string>(); foreach (DataGridViewRow dgvr in gvLimits.Rows) { string editedValue = dgvr.Cells[2].EditedFormattedValue.ToString(); if (editedValue.Contains("$")) { editedValue = editedValue.Remove(0, 1); } decimal limitData = Utilities.GetDecimalValue(editedValue, 0); int prodoffid = Utilities.GetIntegerValue(dgvr.Cells[0].Value, 0); int roleLimitId = Utilities.GetIntegerValue(dgvr.Cells[3].Value, 0); var userLimitData = (from limit in selectedUserLimits where limit.ProdOfferingId == prodoffid && string.IsNullOrEmpty(limit.StoreID) select limit).FirstOrDefault(); if (userLimitData != null) { if (userLimitData.Limit != limitData) { limitsToModify.Add(userLimitData.ProdOfferingId.ToString()); limitsToModify.Add(limitData.ToString()); } } else { limitsToModify.Add(prodoffid.ToString()); if (roleLimitId == 0) { limitsToModify.Add(limitData.ToString()); } else { limitsToModify.Add(limitData == maxLoanStateLimit ? "-1" : limitData.ToString()); } } } string errorCode; string errorText; //Call update employee profile SP GlobalDataAccessor.Instance.beginTransactionBlock(); bool retValue = SecurityProfileProcedures.UpdateEmployeeProfile(_UserVO.UserID, "", _ShopID, loggedInUser.UserName, resourcesToModify, limitsToModify, GlobalDataAccessor.Instance.DesktopSession, out errorCode, out errorText); if (retValue) { MessageBox.Show(@"Successfully updated user profile"); GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT); } else { MessageBox.Show(errorText); GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK); } NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT; }