public ActionResult Edit(int pageId) { var model = new MasterDataApprovalSettingEditViewModel(); model.MainMenu = _mainMenu; model.IsNotViewer = CurrentUser.UserRole != Enums.UserRole.Viewer && CurrentUser.UserRole != Enums.UserRole.Controller; model.CurrentMenu = PageInfo; var data = _masterDataApprovalSettingBLL.GetAllEditableColumn(pageId); model.Detail = Mapper.Map <MasterDataSetting>(data); return(View("Edit", model)); }
public T MasterDataApprovalValidation <T>(int pageId, string userId, T oldObject, T newObject, out bool isExist, out MASTER_DATA_APPROVAL newApproval, bool isCommit = false) { var approvalSettings = _approvalSettingBLL.GetAllEditableColumn(pageId); //var fieldNames = typeof(T).GetFields() // .Select(field => field.Name) // .ToList(); isExist = false; var needApprovalFields = approvalSettings.Details.Where(x => x.IS_APPROVAL.HasValue && x.IS_APPROVAL.Value); if (isCommit) { needApprovalFields = approvalSettings.Details; } var needApprovalList = new List <MASTER_DATA_APPROVAL_DETAIL>(); foreach (var isneedApprove in needApprovalFields) { //var isneedApprove = fieldName; var masterDataApprovalDetail = new MASTER_DATA_APPROVAL_DETAIL(); if (newObject == null) // delete data from database logic (not flagging) { var oldValue = oldObject.GetType().GetProperty(isneedApprove.COLUMN_NAME).GetValue(oldObject, null); masterDataApprovalDetail.OLD_VALUE = oldValue.ToString(); masterDataApprovalDetail.NEW_VALUE = null; masterDataApprovalDetail.COLUMN_DESCRIPTION = isneedApprove.ColumnDescription; masterDataApprovalDetail.COLUMN_NAME = isneedApprove.COLUMN_NAME; needApprovalList.Add(masterDataApprovalDetail); //newObject.GetType().GetProperty(isneedApprove.COLUMN_NAME).SetValue(newObject, oldValue); continue; } if (isneedApprove != null) { var oldValue = oldObject.GetType().GetProperty(isneedApprove.COLUMN_NAME).GetValue(oldObject, null); var newValue = newObject.GetType().GetProperty(isneedApprove.COLUMN_NAME).GetValue(newObject, null); if (oldValue == null) { masterDataApprovalDetail.OLD_VALUE = string.Empty; masterDataApprovalDetail.NEW_VALUE = string.Empty; if (newValue != null) { masterDataApprovalDetail.NEW_VALUE = newValue.ToString(); } masterDataApprovalDetail.COLUMN_DESCRIPTION = isneedApprove.ColumnDescription; masterDataApprovalDetail.COLUMN_NAME = isneedApprove.COLUMN_NAME; if (masterDataApprovalDetail.OLD_VALUE != masterDataApprovalDetail.NEW_VALUE) { needApprovalList.Add(masterDataApprovalDetail); var checkOldObject = GenerateFormId(pageId, oldObject) != null; if (checkOldObject) { newObject.GetType().GetProperty(isneedApprove.COLUMN_NAME).SetValue(newObject, oldValue); } } } else { if (!oldValue.Equals(newValue)) { masterDataApprovalDetail.OLD_VALUE = oldValue.ToString(); masterDataApprovalDetail.NEW_VALUE = newValue.ToString(); masterDataApprovalDetail.COLUMN_DESCRIPTION = isneedApprove.ColumnDescription; masterDataApprovalDetail.COLUMN_NAME = isneedApprove.COLUMN_NAME; needApprovalList.Add(masterDataApprovalDetail); newObject.GetType().GetProperty(isneedApprove.COLUMN_NAME).SetValue(newObject, oldValue); } } } } newApproval = new MASTER_DATA_APPROVAL(); if (needApprovalList.Count > 0) { newApproval.CREATED_BY = userId; newApproval.CREATED_DATE = DateTime.Now; newApproval.PAGE_ID = approvalSettings.PageId; newApproval.STATUS_ID = Enums.DocumentStatus.WaitingForMasterApprover; newApproval.FORM_ID = GenerateFormId(approvalSettings.PageId, newObject); if (newObject == null) // delete data without flagging { newApproval.FORM_ID = GenerateFormId(approvalSettings.PageId, oldObject); } if (approvalSettings.PageId == (int)Enums.MenuList.MaterialMaster) { if (needApprovalList.Where(x => x.COLUMN_NAME == "CONVERTION").Any()) { if (newObject != null) { newObject.GetType().GetProperty("MATERIAL_UOM").SetValue(newObject, new List <MATERIAL_UOM>()); } } } newApproval.MASTER_DATA_APPROVAL_DETAIL = needApprovalList; isExist = CheckExitingOngoingApproval(newApproval.FORM_ID); if (!isExist) { _repository.Insert(newApproval); //SendEmailWorkflowByParam(newApproval); } else { throw new BLLException(ExceptionCodes.BLLExceptions.ApprovalMasterExist); } } if (isCommit) { if (!isExist) { _uow.SaveChanges(); //SendEmailWorkflow(newApproval.APPROVAL_ID); } } return(newObject); }