示例#1
0
        public List <Response> GetResponsesForRequest(GetResponsesForRequestRequest request)
        {
            var newRequest = new Data.Models.Request
            {
                Amount    = request.Count,
                Latitude  = request.Lat,
                Longitude = request.Lng
            };

            _context.Requests.Add(newRequest);
            _context.SaveChanges();
            var responses = ServerLoadManager.CreateResponsesForRequest(newRequest);

            foreach (var response in responses)
            {
                if (response.Server != null)
                {
                    var dbResponse = new Data.Models.Response()
                    {
                        RequestId = newRequest.Id,
                        ServerId  = response.Server.Id,
                        Date      = DateTime.Now,
                        Count     = response.Count
                    };
                    _context.Responses.Add(dbResponse);
                }
                else
                {
                    var dbResponse = new Data.Models.Response()
                    {
                        RequestId = newRequest.Id,
                        ServerId  = null,
                        Date      = DateTime.Now,
                        Count     = response.Count
                    };
                    _context.Responses.Add(dbResponse);
                }
            }
            _context.SaveChanges();

            return(responses);
        }
        public ActionResult <GetResponsesResponse> GetResponseForRequest([FromBody] GetResponsesForRequestRequest request)
        {
            try
            {
                if (!TryValidateModel(request))
                {
                    return(StatusCode(400));
                }
                var responses = _service.GetResponsesForRequest(request);
                var response  = new GetResponsesResponse
                {
                    Responses = responses
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(StatusCode(500));
            }
        }