public async Task <Result <ListResult <RouteInfo> > > GetRoutesInRange(RoutesInRangeRequestModel model) { try { var query = new QueryPager(); ApplyPaging(model, query); string point = $"POINT({model.Point.Lng} {model.Point.Lat})"; var results = await _routeRepository.GetRoutesInRange(query, point, model.Kilometers); var listResult = new ListResult <RouteInfo>() { Count = results.Count, HasNext = results.HasNext, Results = results.Results.Select(r => new RouteInfo() { Id = r.ID, Name = r.Name, Difficulty = (Difficulty)r.Difficulty, UserId = r.UserId }).ToList() }; return(new Result <ListResult <RouteInfo> >(listResult)); } catch (Exception ex) { ErrorResult error = GenerateError(ex); return(new Result <ListResult <RouteInfo> >(error)); } }
public async Task <IActionResult> GetInRange([FromQuery] decimal?lat, [FromQuery] decimal?lng, [FromQuery] int kilometers, [FromQuery] int?pagesize, [FromQuery] int?page) { var model = new RoutesInRangeRequestModel(kilometers, lat, lng, page, pagesize); var validationResult = new RoutesInRangeRequestModelValidator().Validate(model); if (!validationResult.IsValid) { return(WrapResponse(new Result <ListResult <RouteInfo> >(WrapModelStateErrors(validationResult)))); } var result = await _routeService.GetRoutesInRange(model); return(WrapResponse(result, HttpStatusCode.OK)); }