public async Task <IActionResult> GetTimeline([FromRoute] Guid id)
        {
            var query  = new GetTimelineQuery(id);
            var result = await Mediator.Send(query);

            return(await ResponseBase(result));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }