public async Task <IActionResult> GetTimeline([FromRoute] Guid id) { var query = new GetTimelineQuery(id); var result = await Mediator.Send(query); return(await ResponseBase(result)); }
public async Task <BaseResponse <List <UserResponse> > > Handle(GetTimelineQuery request, CancellationToken cancellationToken) { var user = await _applicationDbContext.Users.FindAsync(request.Id); var response = new BaseResponse <List <UserResponse> >(); if (user == null) { response.SetValidationErrors(new [] { "User Not Found!" }); return(response); } var httpResponse = await _httpClient.GetAsync($"http://metworkinggeoapi:5001/timeline/{request.Id}", cancellationToken); if (!httpResponse.IsSuccessStatusCode) { response.SetValidationErrors(new [] { "Erro ao buscar usuario!" }); return(response); } var readAsStringAsync = await httpResponse.Content.ReadAsStringAsync(cancellationToken); var responseTimeLine = JsonSerializer.Deserialize <List <GeoTimelineResponse> >(readAsStringAsync); var userList = new List <UserResponse>(); if (responseTimeLine != null) { foreach (var userGuid in responseTimeLine) { var findUserAsync = await _applicationDbContext.Users.FindAsync(userGuid.idAmigo); if (findUserAsync != null) { var userResponse = _mapper.Map <UserResponse>(findUserAsync); userList.Add(userResponse); } } } if (responseTimeLine == null) { response.SetValidationErrors(new [] { "Timeline vazia!" }); return(response); } response.SetIsOk(userList); return(response); }
public async Task <BaseResponse <List <UserResponse> > > Handle(GetTimelineQuery request, CancellationToken cancellationToken) { var user = await _applicationDbContext.Users.FindAsync(request.Id); var response = new BaseResponse <List <UserResponse> >(); if (user == null) { response.SetValidationErrors(new [] { "User Not Found!" }); return(response); } var userTimeline = await _geoService.GetUserTimeLine(request.Id); var userList = new List <UserResponse>(); if (userTimeline != null) { foreach (var userGuid in userTimeline) { var findUserAsync = await _applicationDbContext.Users.FindAsync(userGuid.idAmigo); if (findUserAsync != null) { var userResponse = _mapper.Map <UserResponse>(findUserAsync); userList.Add(userResponse); } } } if (userTimeline != null && userTimeline.Count == 0) { response.SetValidationErrors(new [] { "Timeline vazia!" }); return(response); } response.SetIsOk(userList); return(response); }