public async Task <PageResultDto <UserDetailDto> > SearchAsync(AccountQuerySearch param) { var query = _unitOfWork.UserRepository.FindAll() .Include(x => x.UserDetail) .Include(x => x.Address) .Include(x => x.UserRole) .ThenInclude(x => x.Role) .AsQueryable(); switch (param.UserType) { case UserType.Administrator: { query = query.Where(x => x.UserRole.Role.Name.Equals(UserRoles.Administrator)); break; } case UserType.Child: { query = query.Where(x => x.UserRole.Role.Name.Equals(UserRoles.Child)); break; } case UserType.Parent: { query = query.Where(x => x.UserRole.Role.Name.Equals(UserRoles.Parent)); break; } case UserType.Giver: { query = query.Where(x => x.UserRole.Role.Name.Equals(UserRoles.Giver)); break; } default: { query = query.Where(x => x.UserRole.Role.Name.Equals(UserRoles.Parent) || x.UserRole.Role.Name.Equals(UserRoles.Giver)); break; } } if (param.IsOwner) { query = query.Where(x => x.CreatedBy.Equals(UserId)); } if (!string.IsNullOrEmpty(param.SearchKey)) { query = query.Where(x => EF.Functions.Like(x.UserDetail.FirstName, $"%{param.SearchKey}%") || EF.Functions.Like(x.UserDetail.LastName, $"%{param.SearchKey}%")); } var result = await query.OrderByDescending(x => x.CreatedAt).Skip(param.GetSkip()).Take(param.GetTake()).ToListAsync(); return(new PageResultDto <UserDetailDto>(await query.CountAsync(), GetTotalPage(await query.CountAsync(), param.GetTake()), result.Select(x => x.ToDetailDto()))); }
public async Task <JsonResult> SearchAccount([DataTablesRequest] DataTablesRequest dataRequest) { var dto = new AccountQuerySearch() { Page = (dataRequest.Start / dataRequest.Length) + 1, Size = dataRequest.Length, UserType = UserType.Administrator }; if (!string.IsNullOrEmpty(dataRequest.Search?.Value)) { dto.SearchKey = dataRequest.Search?.Value; } var response = await _accountService.SearchAsync(dto); return(Json(response.Items.ToDataTablesResponse(dataRequest, response.TotalRecord, response.TotalRecord))); }
public async Task <JsonResult> SearchAccount([DataTablesRequest] DataTablesRequest dataRequest) { if (!string.IsNullOrEmpty(dataRequest?.Search?.Value)) { var dto = new AccountQuerySearch() { Page = (dataRequest.Start / dataRequest.Length) + 1, Size = dataRequest.Length, UserType = UserType.Child, SearchKey = dataRequest.Search.Value }; var response = await _accountService.SearchAsync(dto); return(Json(response.Items.ToDataTablesResponse(dataRequest, response.TotalRecord, response.TotalRecord))); } return(Json(new List <UserDetailDto>().ToDataTablesResponse(dataRequest, 0, 0))); }
public async Task <PageResultDto <UserDetailDto> > SearchAsync(AccountQuerySearch accountQuerySearch) { var response = await GetAsync(string.Format(SEARCH, accountQuerySearch.GetQueryString())); return(await response.Content.ReadAsAsync <PageResultDto <UserDetailDto> >()); }
public async Task <IActionResult> Search([FromQuery] AccountQuerySearch param) { return(Ok(await _accountService.SearchAsync(param))); }
public async Task <PageResultDto <UserDetailDto> > SearchAsync(AccountQuerySearch accountQuerySearch) { return(await _oppJarProxy.SearchAsync(accountQuerySearch)); }