public ActionResult Delete(string id) { if (CurrentUser.UserRole == Enums.UserRole.Viewer || CurrentUser.UserRole == Enums.UserRole.Controller) { AddMessageInfo("Operation not allow", Enums.MessageInfoType.Error); return(RedirectToAction("Index")); } try { _poaBll.Delete(id, CurrentUser.USER_ID); var poa = _poaBll.GetById(id); var updated = AutoMapper.Mapper.Map <POAViewDetailModel>(poa); if (poa.IS_ACTIVE == true) { updated.Is_Active = "No"; } else { updated.Is_Active = "Yes"; } POAViewDetailModel temp = new POAViewDetailModel(); SetChanges(updated, poa, temp); _uow.SaveChanges(); TempData[Constans.SubmitType.Delete] = Constans.SubmitMessage.Updated; } catch (Exception ex) { TempData[Constans.SubmitType.Delete] = ex.Message; } return(RedirectToAction("Index")); }
private void SetChanges(POAViewDetailModel origin, BusinessObject.POA poa, POAViewDetailModel detail) { var convertBooltoString = poa.IS_ACTIVE == true ? "Yes" : "No"; // For Exciser var ExciserData = _poaExciserService.GetByPoaID(poa.POA_ID); var originExciserState = ExciserData.IS_ACTIVE_EXCISER == true ? "Yes" : "No"; var editExciserState = detail.IsExciser == true ? "Yes" : "No"; var changesData = new Dictionary <string, bool>(); changesData.Add("TITLE", origin.Title == poa.TITLE); changesData.Add("LOGIN_AS", origin.UserId == poa.LOGIN_AS); changesData.Add("MANAGER_ID", origin.ManagerId == poa.MANAGER_ID); changesData.Add("POA_PHONE", origin.PoaPhone == poa.POA_PHONE); changesData.Add("POA_EMAIL", origin.Email == poa.POA_EMAIL); changesData.Add("POA_ADDRESS", origin.PoaAddress == poa.POA_ADDRESS); changesData.Add("ID_CARD", origin.PoaIdCard == poa.ID_CARD); changesData.Add("PRINTED_NAME", origin.PoaPrintedName == poa.PRINTED_NAME); changesData.Add("IS_ACTIVE", origin.Is_Active.Equals(convertBooltoString)); // changesData.Add("IS_ACTIVE_EXCISER", originExciserState == editExciserState); foreach (var listChange in changesData) { if (listChange.Value == false) { var changes = new BusinessObject.CHANGES_HISTORY(); changes.FORM_TYPE_ID = Enums.MenuList.POA; changes.FORM_ID = poa.POA_ID.ToString(); changes.FIELD_NAME = listChange.Key; changes.MODIFIED_BY = CurrentUser.USER_ID; changes.MODIFIED_DATE = DateTime.Now; switch (listChange.Key) { case "TITLE": changes.OLD_VALUE = origin.Title; changes.NEW_VALUE = poa.TITLE; break; case "LOGIN_AS": changes.OLD_VALUE = origin.UserId == null ? null : _userBll.GetUserById(origin.UserId).USER_ID; changes.NEW_VALUE = string.IsNullOrEmpty(poa.LOGIN_AS) == true ? null : poa.LOGIN_AS; break; case "MANAGER_ID": changes.OLD_VALUE = origin.ManagerId; changes.NEW_VALUE = poa.MANAGER_ID; break; case "POA_PHONE": changes.OLD_VALUE = origin.PoaPhone; changes.NEW_VALUE = poa.POA_PHONE; break; case "POA_EMAIL": changes.OLD_VALUE = origin.Email; changes.NEW_VALUE = poa.POA_EMAIL; break; case "POA_ADDRESS": changes.OLD_VALUE = origin.PoaAddress; changes.NEW_VALUE = poa.POA_ADDRESS; break; case "ID_CARD": changes.OLD_VALUE = origin.PoaIdCard; changes.NEW_VALUE = poa.ID_CARD; break; case "PRINTED_NAME": changes.OLD_VALUE = origin.PoaPrintedName; changes.NEW_VALUE = poa.PRINTED_NAME; break; case "IS_ACTIVE": changes.OLD_VALUE = origin.Is_Active; changes.NEW_VALUE = convertBooltoString; break; //case "IS_ACTIVE_EXCISER": // changes.OLD_VALUE = originExciserState; // changes.NEW_VALUE = editExciserState; // break; } _changesHistoryBll.AddHistory(changes); } } }