Esempio n. 1
0
        public List <Response> GetResponsesForPeriod(GetResponsesForPeriodRequest request)
        {
            var responses = _context.Responses
                            .Where(r => DateTime.Now.Subtract(r.Date).TotalMinutes <= request.Time)
                            .Include(r => r.Request)
                            .Include(r => r.Server)
                            .ToList();

            var returnedResponses = new List <Response>();

            foreach (var response in responses)
            {
                if (response.ServerId.HasValue)
                {
                    returnedResponses.Add(new Response()
                    {
                        Server = new Server()
                        {
                            Id  = response.ServerId.GetValueOrDefault(),
                            Lat = response.Server.Latitude,
                            Lng = response.Server.Longitude
                        },
                        Request = new Request()
                        {
                            Lat = response.Request.Latitude,
                            Lng = response.Request.Longitude
                        },
                        Count    = response.Count,
                        Distance = 0
                    });
                }
                else
                {
                    returnedResponses.Add(new Response()
                    {
                        Server  = null,
                        Request = new Request()
                        {
                            Lat = response.Request.Latitude,
                            Lng = response.Request.Longitude
                        },
                        Count    = response.Count,
                        Distance = 0
                    });
                }
            }

            return(returnedResponses);
        }
 public ActionResult <GetResponsesResponse> GetResponsesForPeriod([FromBody] GetResponsesForPeriodRequest request)
 {
     try
     {
         if (!TryValidateModel(request))
         {
             return(StatusCode(400));
         }
         var responses = _service.GetResponsesForPeriod(request);
         var response  = new GetResponsesResponse
         {
             Responses = responses
         };
         return(Ok(response));
     }
     catch (Exception ex)
     {
         return(StatusCode(500));
     }
 }