コード例 #1
0
 public async Task <IActionResult> GetRoutesUsingFilter([FromBody] RouteFilterModel filter)
 {
     return(Ok(await mediator.Send(new GetRoutesUsingFilterRequest
     {
         AppUserId = (await userManager.GetUserAsync(User))?.Id,
         RouteFilter = filter
     })));
 }
コード例 #2
0
        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));
        }