public GetSearchResultQuery(IUserStore _UserStore, IFriendsListStore _FriendListStore, IRequestStore _RequestStore, IdentityUser CurrentUser, UserAccount ResultUser, SearchUserDTO SearchUserDTO) { this._RequestStore = _RequestStore; this._FriendListStore = _FriendListStore; this.CurrentUser = CurrentUser; this._UserStore = _UserStore; this.ResultUser = ResultUser; this.SearchUserDTO = SearchUserDTO; }
public IHttpActionResult SearchUser([FromBody] SearchUserDTO dto) { var service = new SearchUserStrategy { SearchUserCriteria = dto.SearchUserCriteria }; var response = (SearchResponseDTO)(service.Execute().Result); if (response.IsSuccessful) { return(Ok(new { response.SearchResults, response.Messages })); } else { return(Content(HttpStatusCode.BadRequest, new { response.Messages })); } }
public List <SearchUserDTO> GetAllSearchUsers(string searchHash) { List <SearchUserDTO> retVal = new List <SearchUserDTO>(); try { using (GlitterDBEntities dbContext = new GlitterDBEntities()) { var users = dbContext.Users.Where(c => c.FirstName.Contains(searchHash) || c.LastName.Contains(searchHash) || c.EmailId.Contains(searchHash)).ToList(); //retVal = users != null && users.Count > 0 ? new List<UserDTO>() : null; int curUserId = 1; SearchUserDTO searchHashPeopleDTO = null; foreach (var user in users) { var alreadyFollowing = dbContext.Follows.Where(f => f.FollowerId == curUserId && f.UserId == user.UserId && f.Active == true).FirstOrDefault(); if (alreadyFollowing != null) { searchHashPeopleDTO = new SearchUserDTO { UserDTO = this.Mapper.Map <UserDTO>(user), AlreadyFollowing = true }; } else { searchHashPeopleDTO = new SearchUserDTO { UserDTO = this.Mapper.Map <UserDTO>(user), AlreadyFollowing = false }; } retVal.Add(searchHashPeopleDTO); } //retVal = this.Mapper.Map<List<UserDTO>>(users); } } catch (Exception ex) { throw ex; } return(retVal); }
public PagedResponse <UserDTO> Execute(SearchUserDTO dto) { var usersQuery = _context.Users .AsQueryable(); if (!string.IsNullOrEmpty(dto.FullName) || !string.IsNullOrWhiteSpace(dto.FullName)) { usersQuery = usersQuery.Where(u => u.FullName.ToLower().Contains(dto.FullName.ToLower())); } if (!string.IsNullOrEmpty(dto.Username) || !string.IsNullOrWhiteSpace(dto.Username)) { usersQuery = usersQuery.Where(u => u.Username.ToLower().Contains(dto.Username.ToLower())); } /** * Returns Users with searched Role name */ if (dto.Role != null) { usersQuery = usersQuery.Where(u => u.Role.Name.ToLower().Contains(dto.Role.ToLower())); } /** * Returns Users on specific Project name */ if (dto.Project != null) { usersQuery = usersQuery.Where(u => u.UserProjects.Select(up => up.Project.Name.ToLower()).Contains(dto.Project.ToLower())); } var skipCount = dto.PerPage * (dto.Page - 1); var users = _mapper.Map <List <UserDTO> >(usersQuery.Skip(skipCount).Take(dto.PerPage).ToList()); return(new PagedResponse <UserDTO> { CurrentPage = dto.Page, ItemsPerPage = dto.PerPage, TotalCount = usersQuery.Count(), Items = users }); }
public IActionResult Search(SearchUserDTO searchUserDTO) { try { if (String.IsNullOrEmpty(searchUserDTO.Username)) { throw new DomainException(ErrorMessages.RequiredValuesNotProvided); } if (ModelState.IsValid) { var ResultUser = _userStore.GetByUsername(searchUserDTO.Username); var currentUser = _context.Users.Find(userManager.GetUserId(User)); if (ResultUser is null || ResultUser.AccountStatus.Equals(Status.Suspended) || ResultUser.AccountStatus.Equals(Status.Inactive)) { throw new DomainException(ErrorMessages.UserDoesNotExist); } var GetSearchResultQuery = new GetSearchResultQuery(_userStore, _FriendListStore, _RequestStore, currentUser, ResultUser, searchUserDTO); return(View(GetSearchResultQuery.Handle())); } return(View(searchUserDTO)); } catch (DomainException ex) { _logger.LogError(ex.Message); ModelState.AddModelError("Error", ex.Message); return(View(searchUserDTO)); } catch (Exception ex) { _logger.LogError(ex.Message); return(RedirectToAction(ActionName.ServerError)); } }
public IActionResult Get([FromQuery] SearchUserDTO dto, [FromServices] IGetUserQuery query) { return(Ok(_executor.ExecuteQuery(query, dto))); }