public async Task <IActionResult> GetUserRoutesUsingFilter([FromBody] UserRouteFilterModel filter)
 {
     return(Ok(await mediator.Send(new GetUserRoutesUsingFilterRequest
     {
         AppUserId = (await userManager.GetUserAsync(User))?.Id,
         Filter = filter
     })));
 }
示例#2
0
        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));
        }