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