/// <summary> /// 新增時需檢查置頂資料 /// </summary> /// <param name="appNameCreate"></param> /// <returns></returns> public TResult <ResponseAppNameCreate> InsertAppName(AppNameCreate appNameCreate) { List <WisAppUserList> wisAppUserList = new List <WisAppUserList>(); bool isExisted = _appListService.AppNameIsExisted(appNameCreate.AppName); if (appNameCreate.Category == "None") { return(TResult <ResponseAppNameCreate> .Fail(new ResponseAppNameCreate { IsSuccessful = false, AppID = "" }, FaultInfoRcConstants.ERR_CODE_FAIL, "請選擇類別")); } if (isExisted) { return(TResult <ResponseAppNameCreate> .Fail(new ResponseAppNameCreate { IsSuccessful = false, AppID = "" }, FaultInfoRcConstants.ERR_CODE_FAIL, "App 名稱已存在")); } //撈出置頂資料 List <InSideOrOutSideApp> inSideOrOutSideApps = _appListService.GetIsTopAppList(); #region Check 置頂 //如果要頂置 檢查頂置規則 企業APP 2筆 外部 App 2筆 var result = IsTopCalculateHelper.IsOverTopQuantity(appNameCreate, inSideOrOutSideApps, true); if (!result.isCheckTop) { return(TResult <ResponseAppNameCreate> .Fail(new ResponseAppNameCreate { IsSuccessful = false, AppID = "" }, FaultInfoRcConstants.ERR_CODE_FAIL, result.errorMessage)); } #endregion //DTO WisAppList wisApp = _mapper.Map <AppNameCreate, WisAppList>(appNameCreate); string appID = Guid.NewGuid().ToString(); DateTime date = DateTime.Now; appNameCreate.AppID = appID; wisApp.AppID = appID; wisApp.LastUpdateUser = "******"; wisApp.LastUpdateDT = date; wisApp.CreateDT = date; wisApp.Delflag = false; //開放使用,無須授權 1:開放,0:有授權名單 #region 授權群組 設定 AppOen 1:開放,0:有授權名單 List <string> groupID = wisApp.AppUserGroup?.Split(',').ToList(); List <WisDefineGroup> wisDefineGroups = _appListService.GetDefineGroup(groupID); foreach (var item in wisDefineGroups) { //新增群組 if (!string.IsNullOrEmpty(item.GroupInclude)) { List <MdsHrEmpData> mdsHrEmpData = new List <MdsHrEmpData>(); List <string> findGroup = item.GroupInclude.Split(',').ToList(); if (item.SelectGroup == "1") // 找Site { mdsHrEmpData.AddRange(_appListService.GetHrEmpByLocation(findGroup)); } else // 找 DeptID { mdsHrEmpData.AddRange(_appListService.GetHrEmpByDept(findGroup)); } List <WisAppUserList> findAppUser = mdsHrEmpData.Select(p => new WisAppUserList { AppID = appNameCreate.AppID, UserID = p.Uid }).ToList(); wisAppUserList.AddRange(findAppUser); } //新增 自定義的user if (!string.IsNullOrEmpty(item.AccountInclude)) { List <MdsAdUserData> mdsAdUserDatas = new List <MdsAdUserData>(); List <MdsHrEmpData> mdsHrEmpData = new List <MdsHrEmpData>(); List <string> findUId = item.AccountInclude.Split(',').ToList(); if (item.SelectAccount == "1") // 找 AD Data { mdsAdUserDatas = _appListService.GetMdsAdUser(findUId); } else // 找 HR Data { mdsHrEmpData = _appListService.GetHrEmpByUId(findUId); } List <WisAppUserList> findAppUser = mdsAdUserDatas.Select(p => new WisAppUserList { AppID = appNameCreate.AppID, UserID = p.Uid }).ToList(); List <WisAppUserList> findAppUserByHr = mdsHrEmpData.Select(p => new WisAppUserList { AppID = appNameCreate.AppID, UserID = p.Uid }).ToList(); wisAppUserList.AddRange(findAppUser); wisAppUserList.AddRange(findAppUserByHr); } } #endregion bool inserted = _appListService.InsertAppName(wisApp, wisAppUserList); if (inserted) { return(TResult <ResponseAppNameCreate> .OK(new ResponseAppNameCreate { IsSuccessful = true, AppID = appID }, appNameCreate.AppName)); } else { return(TResult <ResponseAppNameCreate> .Fail(new ResponseAppNameCreate { IsSuccessful = false, AppID = "" }, FaultInfoRcConstants.ERR_CODE_FAIL, "Insert App name fail!")); } }
/// <summary> /// 更新 Wis App name /// </summary> /// <param name="appNameCreate"></param> /// <returns></returns> public TResult <bool> ModifyAppName(AppNameCreate appNameCreate) { List <WisAppUserList> wisAppUserList = new List <WisAppUserList>(); //撈出置頂總合資料 List <InSideOrOutSideApp> inSideOrOutSideApps = _appListService.GetIsTopAppList(); #region Check 置頂 //如果要頂置 需檢查頂置規則 企業APP 2筆 外部 App 2筆 var result = IsTopCalculateHelper.IsOverTopQuantity(appNameCreate, inSideOrOutSideApps, false); if (!result.isCheckTop) { return(TResult <bool> .Fail(false, FaultInfoRcConstants.ERR_CODE_FAIL, result.errorMessage)); } #endregion //DTO WisAppList wisApp = _mapper.Map <AppNameCreate, WisAppList>(appNameCreate); DateTime date = DateTime.Now; wisApp.LastUpdateUser = "******"; wisApp.LastUpdateDT = date; #region 授權群組 設定 AppOen 1:開放,0:有授權名單 if (!string.IsNullOrEmpty(wisApp.AppUserGroup) && wisApp.AppOpen == false) { List <string> groupID = wisApp.AppUserGroup?.Split(',').ToList(); List <WisDefineGroup> wisDefineGroups = _appListService.GetDefineGroup(groupID); foreach (var item in wisDefineGroups) { //新增群組 if (!string.IsNullOrEmpty(item.GroupInclude)) { List <MdsHrEmpData> mdsHrEmpData = new List <MdsHrEmpData>(); List <string> findGroup = item.GroupInclude.Split(',').ToList(); if (item.SelectGroup == "1") // 找Site { mdsHrEmpData.AddRange(_appListService.GetHrEmpByLocation(findGroup)); } else // 找 DeptID { mdsHrEmpData.AddRange(_appListService.GetHrEmpByDept(findGroup)); } List <WisAppUserList> findAppUser = mdsHrEmpData.Select(p => new WisAppUserList { AppID = appNameCreate.AppID, UserID = p.Uid }).ToList(); wisAppUserList.AddRange(findAppUser); } //新增 自定義的user if (!string.IsNullOrEmpty(item.AccountInclude)) { List <MdsAdUserData> mdsAdUserDatas = new List <MdsAdUserData>(); List <MdsHrEmpData> mdsHrEmpData = new List <MdsHrEmpData>(); List <string> findUId = item.AccountInclude.Split(',').ToList(); if (item.SelectAccount == "1") // 找 AD Data { mdsAdUserDatas = _appListService.GetMdsAdUser(findUId); } else // 找 HR Data { mdsHrEmpData = _appListService.GetHrEmpByUId(findUId); } List <WisAppUserList> findAppUser = mdsAdUserDatas.Select(p => new WisAppUserList { AppID = appNameCreate.AppID, UserID = p.Uid }).ToList(); List <WisAppUserList> findAppUserByHr = mdsHrEmpData.Select(p => new WisAppUserList { AppID = appNameCreate.AppID, UserID = p.Uid }).ToList(); wisAppUserList.AddRange(findAppUser); wisAppUserList.AddRange(findAppUserByHr); } } } #endregion bool isModified = _appListService.ModifyAppName(wisApp, wisAppUserList); if (isModified) { return(TResult <bool> .OK(true, appNameCreate.AppName)); } else { return(TResult <bool> .Fail(false, FaultInfoRcConstants.ERR_CODE_FAIL, "Modify App name fail!")); } }