/// <summary> /// 儲存一筆會員使用者資料 /// </summary> /// <param name="member"></param> public MemberDataModel MemberSave(MemberDataModel member, DataSaveMode mode) { Employee empProtoModel = new Employee(); string empID = member.EmpID; AccountModule accountModule = new AccountModule(); try { if (mode == DataSaveMode.Add) { var protoEmp = accountModule.GetSmartManEmployeeProtoDataByID(empID); if (protoEmp == null) { throw new Exception("志元資料庫中查無員工編號:" + member.EmpID + " 相關資訊"); } var portalEmp = accountModule.GetPrototypeEmployeeByID(member.EmpID); if (portalEmp != null) { throw new Exception("Portal資料庫中已有員工編號:" + member.EmpID + " 的資料"); } empProtoModel = new Employee(); empProtoModel.CreateDate = DateTime.UtcNow.AddHours(8); empProtoModel.Creator = SignInProvider.Instance.User.ADAccount; } else { empProtoModel = accountModule.GetPrototypeEmployeeByAccountID(member.ADAccount, this.PorDB); } empProtoModel.EmployeeID = member.EmpID; empProtoModel.EmployeeName = member.EmpName; empProtoModel.ADAccount = member.ADAccount; empProtoModel.CostDepartmentID = member.CostDepID; empProtoModel.DepartmentID_FK = member.DepID; empProtoModel.Disabled = member.Disable; empProtoModel.DisabledDate = member.Disable ? (DateTime?)Convert.ToDateTime(member.DisableDate) : null; empProtoModel.NationalType = member.Nationality; empProtoModel.SexType = member.Gender; empProtoModel.Modifier = SignInProvider.Instance.User.ADAccount; empProtoModel.ModifyDate = DateTime.UtcNow.AddHours(8); this.ProcessRoleSave(empID, member.Role); if (mode == DataSaveMode.Edit) { this.PorDB.Entry(empProtoModel).State = EntityState.Modified; } else { this.PorDB.Employee.Add(empProtoModel); } this.PorDB.SaveChanges(); } catch (Exception ex) { throw ex; } MemberDataModel result = this.GetMemberDataByID(empID); return(result); }
/// <summary> /// 儲存一筆目錄 /// </summary> /// <param name="member"></param> public MenuDataModel MenuSave(MenuDataModel model, DataSaveMode mode) { MenuDataModel updateModel = null; MenuModule menuModule = new MenuModule(); try { updateModel = menuModule.SaveMenuData(mode, model); } catch (Exception ex) { throw ex; } return(updateModel); }
/// <summary> /// 儲存一筆子目錄 /// </summary> /// <param name="member"></param> public bool SubMenuSave(SubMenuDataModel model, DataSaveMode mode) { bool addSuccess = true; MenuModule menuModule = new MenuModule(); try { addSuccess = menuModule.SaveSubMenuData(mode, model); } catch (Exception ex) { throw ex; } return(addSuccess); }
public MenuDataModel SaveMenuData(DataSaveMode mode, MenuDataModel model) { MenuDataModel result = new MenuDataModel(); string muID = model.MenuID; PTMenu pTMenu = null; PTFunction pTFunction = null; try { if (mode == DataSaveMode.Add) { var chkHasMenu = this.GetMenuDataByID(muID); if (chkHasMenu != null) { throw new Exception("已有MenuID為:" + muID + " 的選單,目錄名稱為:" + chkHasMenu.MenuName); } //menu pTMenu = new PTMenu() { BUD_DTM = DateTime.UtcNow.AddHours(8), BUD_USRID = SignInProvider.Instance.User.ADAccount }; //function pTFunction = new PTFunction() { BUD_DTM = DateTime.UtcNow.AddHours(8), BUD_USRID = SignInProvider.Instance.User.ADAccount, }; } else if (mode == DataSaveMode.Edit) { //menu pTMenu = this.PorDB.PTMenu.Where(o => o.MUID == muID).FirstOrDefault(); if (pTMenu == null) { throw new Exception("無法取得選單主檔"); } //function pTFunction = this.GetProtorMentFunctionByID(muID); } else { throw new Exception("[儲存目錄]無法得知的儲存模式"); } pTMenu.MUID = model.MenuID; pTMenu.MU_NM = model.MenuName; pTMenu.MUICON = model.MenuIcon; pTMenu.ACT_FG = model.Enabled; pTMenu.MENU_FG = model.MenuEnabled; pTMenu.MUPID = model.ParentMenuID; pTMenu.UPD_DTM = DateTime.UtcNow.AddHours(8); pTMenu.UPD_USRID = SignInProvider.Instance.User.ADAccount; pTFunction.MAP_MUID = muID; pTFunction.SORT_SEQ = model.MenuSort; pTFunction.FN_DIR = model.MenuPathController; pTFunction.FN_KEY = model.MenuPathAction; pTFunction.FN_LINK = string.Concat(model.MenuPathController, "/", model.MenuPathAction); pTFunction.UPD_DTM = DateTime.UtcNow.AddHours(8); pTFunction.UPD_USRID = SignInProvider.Instance.User.ADAccount; if (mode == DataSaveMode.Add) { this.PorDB.PTMenu.Add(pTMenu); this.PorDB.PTFunction.Add(pTFunction); } else { this.PorDB.Entry(pTMenu).State = EntityState.Modified; this.PorDB.Entry(pTFunction).State = EntityState.Modified; } this.PorDB.SaveChanges(); result = this.GetMenuDataByID(muID); } catch (Exception ex) { throw ex; } if (result == null) { throw new Exception("儲存目錄後無法取得目錄資料"); } return(result); }