public async Task <IActionResult> GetRoutesUsingFilter([FromBody] RouteFilterModel filter) { return(Ok(await mediator.Send(new GetRoutesUsingFilterRequest { AppUserId = (await userManager.GetUserAsync(User))?.Id, RouteFilter = filter }))); }
public Task <IQueryable <Route> > GetRoutesUsingFilter(RouteFilterModel routeFilterModel) { IQueryable <Route> routes = context.Routes; if (routeFilterModel != null) { if (!string.IsNullOrEmpty(routeFilterModel.NameRoute)) { routes = routes.Where(a => a.Name.Contains(routeFilterModel.NameRoute)); } if (routeFilterModel.Complexity != null) { if (routeFilterModel.Complexity == "Легкий") { routes = routes.Where(a => a.Complexity == Complexity.Easy); } if (routeFilterModel.Complexity == "Средний") { routes = routes.Where(a => a.Complexity == Complexity.Medium); } if (routeFilterModel.Complexity == "Сложный") { routes = routes.Where(a => a.Complexity == Complexity.Difficult); } } if (!string.IsNullOrEmpty(routeFilterModel.Region)) { routes = routes.Where(a => a.Region.Contains(routeFilterModel.Region)); } if (!string.IsNullOrEmpty(routeFilterModel.KeyPoints)) { routes = routes.Where(a => a.KeyPoints.Contains(routeFilterModel.KeyPoints)); } if (routeFilterModel.Rating != null) { routes = routes.Where(a => a.Rating >= routeFilterModel.Rating); } } return(Task.FromResult(routes)); }