public PartialFindResult <UserForApiContract> GetList( string query = "", UserGroupId groups = UserGroupId.Nothing, DateTime?joinDateAfter = null, DateTime?joinDateBefore = null, NameMatchMode nameMatchMode = NameMatchMode.Auto, int start = 0, int maxResults = 10, bool getTotalCount = false, UserSortRule?sort = null, bool includeDisabled = false, bool onlyVerified = false, string knowsLanguage = null, UserOptionalFields fields = UserOptionalFields.None) { var queryParams = new UserQueryParams { Common = new CommonSearchParams(SearchTextQuery.Create(query, nameMatchMode), false, false), Group = groups, IncludeDisabled = includeDisabled, OnlyVerifiedArtists = onlyVerified, KnowsLanguage = knowsLanguage, JoinDateAfter = joinDateAfter, JoinDateBefore = joinDateBefore, Sort = sort ?? UserSortRule.Name, Paging = new PagingProperties(start, maxResults, getTotalCount) }; return(queries.GetUsers(queryParams, user => new UserForApiContract(user, userIconFactory, fields))); }
public ActionResult Index(string filter = null, UserGroupId?groupId = null) { var vm = new Models.User.Index { Filter = filter, GroupId = groupId }; if (!string.IsNullOrEmpty(filter)) { var queryParams = new UserQueryParams { Common = new CommonSearchParams(SearchTextQuery.Create(filter), false, false), Paging = new PagingProperties(0, 1, true), Group = groupId ?? UserGroupId.Nothing }; var result = Data.GetUsers(queryParams, u => u.Name); if (result.TotalCount == 1 && result.Items.Length == 1) { return(RedirectToAction("Profile", new { id = result.Items[0] })); } } return(View(vm)); }
public async Task <QueryResult <UserForList> > GetUsers(UserQueryParams queryParams) { var queryResult = new QueryResult <UserForList>(); var query = this.context.User .Select(x => new UserForList { Id = x.Id, FirstName = x.FirstName, LastName = x.LastName, Email = x.Email, LastActive = x.LastActive, Roles = x.UserRoles.Where(c => c.UserId == x.Id).Select(o => o.Role.Name).ToList() }) .AsQueryable(); var columMap = new Dictionary <string, Expression <Func <UserForList, object> > >() { ["roles"] = v => v.Roles.Count(), ["lastActive"] = v => v.LastActive, }; query = query.ApplyOrdering <UserForList>(queryParams, columMap); queryResult.TotalItems = await query.CountAsync(); queryResult.Items = query.ApplyPaging(queryParams); return(queryResult); }
public async Task <IEnumerable <User> > GetUsers(UserQueryParams userParams) { var users = _context.Users .Where(i => i.Id != userParams.UserId) .Include(i => i.Images) .AsQueryable(); if (userParams.Followers) { // takip edenler var result = await GetFollows(userParams.UserId, false); users = users.Where(u => result.Contains(u.Id)); } if (userParams.Followings) { // takip edilenler var result = await GetFollows(userParams.UserId, true); users = users.Where(u => result.Contains(u.Id)); } return(await users.ToListAsync()); }
public async Task <IActionResult> GetUsers([FromQuery] UserQueryParams queryParams) { var user = await this.repo.GetUsers(queryParams); var userToReturn = this.mapper.Map <QueryResultResource <UserForList> >(user); return(Ok(userToReturn)); }
public static IEnumerable <User> ApplyQuery(this IEnumerable <User> query, UserQueryParams queryParams, bool usePaging = true) { if (queryParams.Id.HasValue) { query = query.Where(x => x.Id == queryParams.Id.Value); } return(query.ApplyBaseQuery(queryParams)); }
// api/users?followers=true&gender=male public async Task <IActionResult> GetUsers([FromQuery] UserQueryParams userParams) { userParams.UserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var users = await _repository.GetUsers(userParams); var result = _mapper.Map <IEnumerable <UserForListDTO> >(users); return(Ok(result)); }
public UserContract GetUserInfo(string name) { var queryParams = new UserQueryParams { Common = new CommonSearchParams(SearchTextQuery.Create(name, NameMatchMode.Exact), false, false), Paging = new PagingProperties(0, 1, false) }; var users = userQueries.GetUsers(queryParams, u => new UserContract(u)); return(users.Items.FirstOrDefault()); }
private PartialFindResult <UserContract> CallGetUsers(UserGroupId groupId = UserGroupId.Nothing, string name = null, bool disabled = false, bool verifiedArtists = false, UserSortRule sortRule = UserSortRule.Name, PagingProperties paging = null) { var queryParams = new UserQueryParams { Common = new CommonSearchParams(SearchTextQuery.Create(name), false, false), Group = groupId, IncludeDisabled = disabled, OnlyVerifiedArtists = verifiedArtists, Sort = sortRule, Paging = paging ?? new PagingProperties(0, 10, true) }; return(data.GetUsers(queryParams, u => new UserContract(u))); }
public UserWithFilterForCaountSpecification(UserQueryParams queryParams) : base(x => (string.IsNullOrEmpty(queryParams.Search) || x.FirstName.ToLower().Contains(queryParams.Search) || x.LastName.ToLower().Contains(queryParams.Search) || x.Department.Name.ToLower().Contains(queryParams.Search) || x.Campus.Name.ToLower().Contains(queryParams.Search) ) && (!queryParams.Status.HasValue || x.IsActive == queryParams.Status) ) { }
public async Task <IEnumerable <User> > GetUsers(UserQueryParams userParams) { var users = _context.Users .Where(i => i.Id != userParams.UserId) .Include(i => i.Images) .AsQueryable(); if (userParams.Followers) { // takip edenler var result = await GetFollows(userParams.UserId, false); users = users.Where(u => result.Contains(u.Id)); } if (userParams.Followings) { // takip edilenler var result = await GetFollows(userParams.UserId, true); users = users.Where(u => result.Contains(u.Id)); } if (!string.IsNullOrEmpty(userParams.Gender)) { users = users.Where(i => i.Gender == userParams.Gender); } if (userParams.minAge != 18 || userParams.maxAge != 100) { var today = DateTime.Now; var min = today.AddYears(-(userParams.maxAge + 1)); var max = today.AddYears(-userParams.minAge); users = users.Where(i => i.DateOfBirth >= min && i.DateOfBirth <= max); } if (!string.IsNullOrEmpty(userParams.City)) { users = users.Where(i => i.City.ToLower() == userParams.City.ToLower()); } if (!string.IsNullOrEmpty(userParams.Country)) { users = users.Where(i => i.Country.ToLower() == userParams.Country.ToLower()); } return(await users.ToListAsync()); }
public UserWithTitleAndCampusSpesification(UserQueryParams queryParams) : base(x => (string.IsNullOrEmpty(queryParams.Search) || x.FirstName.ToLower().Contains(queryParams.Search) || x.LastName.ToLower().Contains(queryParams.Search) || x.Department.Name.ToLower().Contains(queryParams.Search) || x.Campus.Name.ToLower().Contains(queryParams.Search) ) && (string.IsNullOrEmpty(queryParams.StatusPassive) || x.IsActive == false) && (string.IsNullOrEmpty(queryParams.StatusActive) || x.IsActive == true) ) { AddInclude(x => x.Campus); AddInclude(x => x.Department); AddInclude(x => x.Degree); AddInclude(x => x.UserPhotos); AddOrderBy(x => x.FirstName); ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize); }
public async Task <IActionResult> GetUsers([FromQuery] UserQueryParams userQueryParams) { var currentUserId = User.GetId(); userQueryParams.CurrentUserId = currentUserId; if (string.IsNullOrWhiteSpace(userQueryParams.Gender)) { var currentUser = await _repo.GetUser(currentUserId); userQueryParams.Gender = currentUser.Gender.Equals("male", StringComparison.InvariantCultureIgnoreCase) ? "female" : "male"; } var users = await _repo.GetUsers(userQueryParams); var usersDtos = _mapper.Map <IEnumerable <UserForListDto> >(users); Response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages); return(Ok(usersDtos)); }
public async Task <PagedList <User> > GetUsers(UserQueryParams userQueryParams) { var results = _context.Users.Include(u => u.Photos).Where(u => u.Id != userQueryParams.CurrentUserId && u.Gender == userQueryParams.Gender); var minDateOfBirth = DateTime.Today.AddYears(-userQueryParams.MaxAge - 1); var maxDateOfBirth = DateTime.Today.AddYears(-userQueryParams.MinAge); results = results.Where(u => u.DateOfBirth >= minDateOfBirth && u.DateOfBirth <= maxDateOfBirth); if (!string.IsNullOrWhiteSpace(userQueryParams.OrderBy)) { results = results.OrderByDescending(u => userQueryParams.OrderBy.Equals("created", StringComparison.InvariantCultureIgnoreCase) ? u.Created : u.LastActive); } else { results = results.OrderByDescending(u => u.LastActive); } return(await PagedList <User> .CreateAsync(results, userQueryParams.PageNumber, userQueryParams.PageSize)); }
public async Task <Pagination <UserForListDto> > GetUserForList(UserQueryParams userQueryParams) { var spec = new UserWithTitleAndCampusSpesification(userQueryParams); var users = await userDal.ListEntityWithSpecAsync(spec); var countSpec = new UserWithFilterForCaountSpecification(userQueryParams); var totalItems = await userDal.CountAsync(countSpec); if (users == null) { throw new RestException(HttpStatusCode.BadRequest, new { UsersNotFound = Messages.UserNotFound }); } var data = mapper.Map <List <User>, List <UserForListDto> >(users); return(new Pagination <UserForListDto> ( userQueryParams.PageIndex, userQueryParams.PageSize, totalItems, data )); }
public IHttpActionResult SearchUsers([FromUri] UserQueryParams obj, int page, int size) { try { if (obj == null) { return(BadRequest()); } var usersTuple = userService.SearchUsers(obj.FirstName, obj.LastName, obj.City, obj.BirthdayFrom, obj.BirthdayTo, obj.Gender, obj.RoleName, page, size); var users = usersTuple.Item1.ToList(); var retVal = AutoMapper.Mapper.Map <List <ApplicationUser>, List <UserViewModel> >(users); retVal.ForEach( retValObj => { retValObj.RoleName = userService.GetRoleName(retValObj.Id); }); PageModel <UserViewModel> pageModel = new PageModel <UserViewModel>() { Models = retVal }; pageModel.CurrentPage = page; pageModel.Count = usersTuple.Item2; pageModel.Size = size; return(Ok(pageModel)); } catch (Exception) { return(BadRequest()); } }
public async Task <ActionResult <Pagination <UserForListDto> > > GetUserList([FromQuery] UserQueryParams userQueryParams) { return(await userService.GetUserForList(userQueryParams)); }
public IQueryable <User> FindUser(UserQueryParams queryParams) { return(null); }