public async Task <IActionResult> Get(CancellationToken cancellationToken = default) { var response = new GetUserResponse(); try { // get company and email data from jwt var company = _httpContext.HttpContext.User.Claims.First(c => c.Type == "company")?.Value; var email = _httpContext.HttpContext.User.Claims.First(c => c.Type == "username")?.Value; var filter = new GetUserFilter(company, email); var user = await _userAppService.GetUser(filter, cancellationToken); response.StatusCode = 200; response.Data = user; return(Ok(response)); } catch (Exception ex) { response.StatusCode = 500; response.Messages.Add(ResponseMessage.Create(ex, "")); return(StatusCode(500, response)); } }
public async Task <UserDTO> GetUser(GetUserFilter filter, CancellationToken cancellationToken = default) { try { return(await _userQueryHandler.HandleAsync(filter, cancellationToken)); } catch (Exception ex) { throw ex; } }
public async Task <UserDTO> HandleAsync(GetUserFilter filter, CancellationToken cancellationToken = default) { try { ValidateFilter(filter); var user = await _userRepository.GetOneAsync(filter, cancellationToken); return(user.ToDTO()); } catch (Exception ex) { throw ex; } }
public async Task <TypedResult <IEnumerable <UserOutDto> > > GetUsers(GetUserFilter getUserFilter) { try { var filters = new List <FilterDefinition <UserEntity> >(); if (!string.IsNullOrWhiteSpace(getUserFilter?.FirstNameLike)) { filters.Add(Builders <UserEntity> .Filter.Regex(u => u.Name.FirstName, BsonRegularExpression.Create(new Regex($"{getUserFilter.FirstNameLike}")))); } if (!string.IsNullOrWhiteSpace(getUserFilter?.LastNameLike)) { filters.Add(Builders <UserEntity> .Filter.Regex(u => u.Name.LastName, BsonRegularExpression.Create(new Regex($"{getUserFilter.LastNameLike}")))); } if (getUserFilter?.ReportsTo != null) { filters.Add(Builders <UserEntity> .Filter.Eq(u => u.ReportingTo, getUserFilter.ReportsTo)); } if (getUserFilter?.Roles != null && getUserFilter.Roles.Any()) { var tagFilters = new List <FilterDefinition <UserEntity> >(); foreach (var role in getUserFilter.Roles) { tagFilters.Add(Builders <UserEntity> .Filter.AnyEq(le => le.Roles, role.ToString())); } filters.Add(Builders <UserEntity> .Filter.Or(tagFilters)); } var foundUsers = filters.Any() ? (await UserCollection.FindAsync(Builders <UserEntity> .Filter.And(filters))).ToList().Select(UserOutDto.EntityToOutDto) : (await UserCollection.FindAsync(x => true)).ToList().Select(UserOutDto.EntityToOutDto); return(new SuccessfulTypedResult <IEnumerable <UserOutDto> >(foundUsers)); } catch (Exception e) { return(new FailedTypedResult <IEnumerable <UserOutDto> >(e)); } }