public BaseResponse <GetUserInfoResult> GetUserInfo(GetUserInfoParameter parameter) { BaseResponse <GetUserInfoResult> response = new BaseResponse <GetUserInfoResult>(); try { if (string.IsNullOrEmpty(parameter.Sort)) { parameter.Sort = "UserToken"; } if (string.IsNullOrEmpty(parameter.Order)) { parameter.Order = "asc"; } if (parameter.Page == 0) { parameter.Page = 1; } if (parameter.PageSize == 0) { parameter.PageSize = 10; } switch (parameter.Sort) { case "RoleID": parameter.Sort = "RoleName"; break; } int count = 0; if (parameter.Page == 0) { parameter.Page = 1; } using (var dataContext = new iCMSDbContext()) { IQueryable <HBUser> userInfoList = dataContext.HBUsers.Where(p => p.IsDeleted == false); ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("UserID", sortOrder), }; var currentUser = dataContext.HBUsers.Where(t => t.UserID == parameter.CurrentUserID).FirstOrDefault(); if (currentUser == null) { response.IsSuccessful = false; return(response); } int currentRoleID = currentUser.RoleID; //根据当前登录用户角色来显示用户 switch (currentRoleID) { case 1: //超级管理员 userInfoList = userInfoList.Where(t => true); break; case 3: //一级管理员 userInfoList = userInfoList.Where(t => t.RoleID == 3 || t.RoleID == 4); break; case 4: //二级管理员 userInfoList = userInfoList.Where(t => t.RoleID == 4); break; } if (parameter.OrganizationID.HasValue && parameter.OrganizationID.Value > 0) { userInfoList = userInfoList.Where(t => t.OrganizationID == parameter.OrganizationID.Value); } //userInfoList = userInfoList.OrderBy(sortList); count = userInfoList.Count(); var organArray = organRepository.GetDatas <Organization>(t => !t.IsDeleted, true).ToList(); //if (parameter.Page > -1) //{ // userInfoList = userInfoList // .Skip((parameter.Page - 1) * parameter.PageSize) // .Take(parameter.PageSize); //} var tempUserInfoList = userInfoList .ToArray() .Select(user => { HBRole roleNameObj = dataContext.HBRoles.FirstOrDefault(role => role.RoleID == user.RoleID); var organ = organArray.Where(t => t.OrganID == user.OrganizationID).FirstOrDefault(); return(new HBUserInfo { UserID = user.UserID, RoleID = user.RoleID, RoleName = roleNameObj == null ? string.Empty : roleNameObj.RoleName, UserToken = user.UserToken, Gender = user.Gender, LastUpdateUserID = user.LastUpdateUserID, OrganizationID = user.OrganizationID, OrganizationName = organ == null ? string.Empty : organ.OrganFullName, UseStatus = user.UseStatus, AddDate = user.AddDate, OrganTypeID = organ == null ? 0 : organ.OrganTypeID }); }).AsQueryable(); tempUserInfoList = tempUserInfoList.OrderBy(sortList); if (parameter.Page > -1) { tempUserInfoList = tempUserInfoList .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } response.Result = new GetUserInfoResult { Total = count, UserInfoList = tempUserInfoList.ToList() }; response.IsSuccessful = true; response.Code = null; return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Code = null; return(response); } }
public BaseResponse <GetUserInfoResult> GetUserInfo(GetUserInfoParameter parameter) { BaseResponse <GetUserInfoResult> response = new BaseResponse <GetUserInfoResult>(); try { switch (parameter.Sort) { case "RoleName": parameter.Sort = "RoleID"; break; } int count = 0; if (parameter.Page == 0) { parameter.Page = 1; } using (var dataContext = new iCMSDbContext()) { IQueryable <HBUser> userInfoList = dataContext.HBUsers.Where(p => p.IsDeleted == false); ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("UserID", sortOrder), }; var currentUser = dataContext.HBUsers.Where(t => t.UserID == parameter.CurrentUserID).FirstOrDefault(); if (currentUser == null) { response.IsSuccessful = false; return(response); } int currentRoleID = currentUser.RoleID; //根据当前登录用户角色来显示用户 switch (currentRoleID) { case 1: //超级管理员 userInfoList.Where(t => true); break; case 2: //一级管理员 userInfoList.Where(t => t.RoleID == 2 || t.RoleID == 3); break; case 3: userInfoList.Where(t => t.RoleID == 3); break; } userInfoList = userInfoList.OrderBy(sortList); count = userInfoList.Count(); if (parameter.Page > -1) { userInfoList = userInfoList .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } var tempUserInfoList = userInfoList .ToArray() .Select(user => { HBRole roleNameObj = dataContext.HBRoles.FirstOrDefault(role => role.RoleID == user.RoleID); return(new HBUserInfo { UserID = user.UserID, RoleID = user.RoleID, RoleName = roleNameObj == null ? "" : roleNameObj.RoleName, UserToken = user.UserToken, Gender = user.Gender, LastUpdateUserID = user.LastUpdateID, OrganizationID = user.OrganizationID, OrganizationName = string.Empty }); }) .ToList(); response.Result = new GetUserInfoResult { Total = count, UserInfoList = tempUserInfoList }; response.IsSuccessful = true; response.Code = null; return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Code = null; return(response); } }