public LUSerListResult GetListWithPaging(WCFAuthInfoVM entity_WCFAuthInfoVM, LoginUserVM entity_SearchCriteria, int int_CurrentPage, int int_PageSize, string str_SortColumn, string str_SortDir, List <string> str_CustomFilter, List <Guid> guidList_AccessedLUserID) { try { //Restore Server Session RetrieveServerSideSession(entity_WCFAuthInfoVM); bool ret_CheckPrivilege = false; List <string> strList_Error = new List <string>(); LUSerListResult returnResult = new LUSerListResult(); CoolPrivilegeControlContext dbContext = CoolPrivilegeControlContext.CreateContext(); LUserAccessPolicy userAccessPolicy = new LUserAccessPolicy(); LUserAccessByOrgPolicy userAccessByOrgPolicy = new LUserAccessByOrgPolicy(); LoginUserRespository entityRepos = new LoginUserRespository(dbContext, entity_BaseSession.ID); #region [ Check Privilege ] ret_CheckPrivilege = CheckAccPrivilege(entity_BaseSession.ID, entity_WCFAuthInfoVM.RequestFunKey, entity_WCFAuthInfoVM.RequestFunTypeKey, ref strList_Error); #endregion returnResult.StrList_Error = strList_Error; returnResult.Int_TotalRecordCount = 0; returnResult.EntityList_LoginUserVM = new List <LoginUserVM>(); if (ret_CheckPrivilege) { Func <List <LUser>, List <LUser> > func_OtherFilter = (entityList_LUVM) => { List <LUser> ret = entityList_LUVM; if (entity_SearchCriteria.UserType.HasValue) { if (entity_SearchCriteria.UserType.Value == 1) { ret = ret.Where(current => current.LU_UserType.HasValue && current.LU_UserType.Value == 1).ToList(); } else if (entity_SearchCriteria.UserType.Value == 2) { ret = ret.Where(current => current.LU_UserType.HasValue && current.LU_UserType.Value == 2).ToList(); if (!string.IsNullOrWhiteSpace(entity_SearchCriteria.SC_RoleName)) { List <LoginUserVM> entityList_LoginUservm = userAccessPolicy.Get_LoginUser_RoleName(dbContext, entity_SearchCriteria.SC_RoleName.ToString()); var IDList_LoginUserVM = entityList_LoginUservm.Select(current => current.ID).ToList(); ret = ret.Where(current => IDList_LoginUserVM.Contains(current.ID)).ToList(); } } else if (entity_SearchCriteria.UserType.Value == 3) { ret = ret.Where(current => current.LU_UserType.HasValue && current.LU_UserType.Value == 3).ToList(); if (!string.IsNullOrWhiteSpace(entity_SearchCriteria.SC_OrgKey)) { List <LoginUserVM> entityList_LoginUservm = userAccessByOrgPolicy.Get_LoginUser_OrgName(dbContext, entity_SearchCriteria.SC_OrgKey.ToString()); var IDList_LoginUserVM = entityList_LoginUservm.Select(current => current.ID).ToList(); ret = ret.Where(current => IDList_LoginUserVM.Contains(current.ID)).ToList(); } } } if (!string.IsNullOrWhiteSpace(entity_SearchCriteria.LoginName)) { ret = ret.Except(ret.Where(current => current.LU_Name.IndexOf(entity_SearchCriteria.LoginName) != 0)).ToList(); } //AccessRight Checking ret = ret.Where(current => guidList_AccessedLUserID.Contains(current.ID)).ToList(); return(ret); }; int recordCount = 0; List <LoginUserVM> vmList = entityRepos.GetEntityListByPage(entity_SearchCriteria, int_CurrentPage, int_PageSize, str_SortColumn, str_SortDir, out recordCount, str_CustomFilter, func_OtherFilter, null, (entityList_VM) => { foreach (var item in entityList_VM) { List <LUserRoleVM> entityList_RoleVM = userAccessPolicy.Get_RoleSettings_LUserID(dbContext, item.ID); item.EntityList_Role = entityList_RoleVM; List <LUserOrganizationVM> entityList_OrgVM = userAccessByOrgPolicy.Get_OrgSettings_LUserID(dbContext, item.ID); item.EntityList_Org = entityList_OrgVM; } return(entityList_VM); }); IPrivilegeFun entity_IPrivilegeFun = WCFBootstrapper.Container.GetExportedValue <IPrivilegeFun>(); SessionWUserInfo entity_SessionWUserInfo = entity_IPrivilegeFun.getAuthorizedInfoByUserID(entity_BaseSession.ID); List <Guid> guidList_SpecificLUID = vmList.Select(current => current.ID).ToList(); IDictionary <Guid, bool> boolDic_Del = new Dictionary <Guid, bool>(); IDictionary <Guid, bool> boolDic_Eidt = new Dictionary <Guid, bool>(); if (StaticContent.LockAdmin()) { boolDic_Del = CheckAccPrivilegeWSpecificUserIDList(entity_SessionWUserInfo, entity_WCFAuthInfoVM.RequestFunKey, "Delete", guidList_SpecificLUID); boolDic_Eidt = CheckAccPrivilegeWSpecificUserIDList(entity_SessionWUserInfo, entity_WCFAuthInfoVM.RequestFunKey, "Edit", guidList_SpecificLUID); } else { boolDic_Del = CheckAccPrivilegeWSpecificUserIDList(entity_SessionWUserInfo, entity_WCFAuthInfoVM.RequestFunKey, "Delete", guidList_SpecificLUID, true); boolDic_Eidt = CheckAccPrivilegeWSpecificUserIDList(entity_SessionWUserInfo, entity_WCFAuthInfoVM.RequestFunKey, "Edit", guidList_SpecificLUID, true); } foreach (var vm in vmList) { if (boolDic_Eidt.ContainsKey(vm.ID)) { vm.AllowEdit = boolDic_Eidt[vm.ID]; } if (boolDic_Del.ContainsKey(vm.ID)) { vm.AllowDel = boolDic_Del[vm.ID]; } } returnResult.EntityList_LoginUserVM = vmList; returnResult.Int_TotalRecordCount = recordCount; } return(returnResult); } catch (Exception ex) { throw new FaultException <WCFErrorContract>(new WCFErrorContract(ex), ex.Message); } }
public LUSerEditResult GetEntityByIDWDetails(WCFAuthInfoVM entity_WCFAuthInfoVM, string str_LUID) { try { //Retrieve Language And Session RetrieveLanguageAndSession(entity_WCFAuthInfoVM); List <string> strList_Error = new List <string>(); bool ret_CheckPrivilege = false; LUSerEditResult ret = new LUSerEditResult(); ret.StrList_Error = strList_Error; Guid ID = Guid.Parse(str_LUID); ret_CheckPrivilege = CheckAccPrivilege(entity_BaseSession.ID, entity_WCFAuthInfoVM.RequestFunKey, entity_WCFAuthInfoVM.RequestFunTypeKey, ref strList_Error); if (ret_CheckPrivilege) { string str_Error = ""; LoginUserVM db_LoginUserVM = null; DBContextHelper.ExecuteSearchEvent(CoolPrivilegeControlContext.CreateContext(), dbContext => { LoginUserRespository Respo_LU = new LoginUserRespository(dbContext, entity_BaseSession.ID); db_LoginUserVM = Respo_LU.GetEntityByID(ID, languageKey, ref strList_Error); }); if (!string.IsNullOrWhiteSpace(str_Error)) { ret.StrList_Error.Add(str_Error); } else { db_LoginUserVM.isChangePwd = false; //By Role Settings if (db_LoginUserVM.UserType.HasValue && db_LoginUserVM.UserType.Value == 2) { LUserAccessPolicy lUserAccessPolicy = new LUserAccessPolicy(); DBContextHelper.ExecuteSearchEvent(CoolPrivilegeControlContext.CreateContext(), dbContext => { List <LUserRoleVM> entityList = lUserAccessPolicy.Get_RoleSettings_LUserID(dbContext, ID); if (entityList.Count > 0) { db_LoginUserVM.roleListIDList = entityList.Select(currrent => currrent.ID.ToString()).Aggregate((first, next) => { return(first + "|" + next); }); } }); } //By Organization Settings else if (db_LoginUserVM.UserType.HasValue && db_LoginUserVM.UserType.Value == 3) { DBContextHelper.ExecuteSearchEvent(CoolPrivilegeControlContext.CreateContext(), dbContext => { LUserAccessByOrgRespository entity_LUserAccessByOrgRespo = new LUserAccessByOrgRespository(dbContext, entity_BaseSession.ID); List <LUserAccessByOrgVM> entityList = entity_LUserAccessByOrgRespo.Get_LoginUserOrgSettings_LUserID(dbContext, ID); if (entityList.Count > 0) { db_LoginUserVM.orgListIDList = entityList.Select(currrent => currrent.UA_Org_ID.ToString()).Aggregate((first, next) => { return(first + "|" + next); }); db_LoginUserVM.orgDetailsIDList = entityList.Select(currrent => currrent.UA_OrgD_ID.ToString()).Aggregate((first, next) => { return(first + "|" + next); }); } }); } //By Specific Function Settings else { DBContextHelper.ExecuteSearchEvent(CoolPrivilegeControlContext.CreateContext(), dbContext => { AccPrivilegePolicy userRoleFunDetailsPolicy = new AccPrivilegePolicy(); List <FunDetailInfo> entityList_FunDetailInfo = userRoleFunDetailsPolicy.Get_LoginUserPrivilege_UserID(dbContext, ID); db_LoginUserVM.EntityList_FDInfo = entityList_FunDetailInfo; }); } } ret.Entity_LoginUserVM = db_LoginUserVM; } return(ret); } catch (Exception ex) { throw new FaultException <WCFErrorContract>(new WCFErrorContract(ex), ex.Message); } }