Ejemplo n.º 1
0
        public ActionResult Search(GameFilterModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            return(View(GamesDbService.LastClientRent(db, model.cedula)));
        }
Ejemplo n.º 2
0
        public JsonResult Find(GameFilterModel filters)
        {
            var games = GetGames(filters);
            var total = games.Count();

            return(new JsonResult(new { games = GetPage(filters, games), total },
                                  new JsonSerializerSettings {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            }));
        }
Ejemplo n.º 3
0
        private IQueryable <Game> GetGames(GameFilterModel filters)
        {
            var foundGames = context.Games
                             .Include(g => g.TeamGameResults).ThenInclude(cgr => cgr.Team)
                             .Include(g => g.TeamGameResults).ThenInclude(cgr => cgr.Results)
                             .Where(g => string.IsNullOrEmpty(filters.GameName) || g.GameName == filters.GameName)
                             .Where(g => string.IsNullOrEmpty(filters.TeamName) || g.TeamGameResults.Any(gr => gr.Team.Name.StartsWith(filters.TeamName, StringComparison.CurrentCultureIgnoreCase)))
                             .Where(g => string.IsNullOrEmpty(filters.Region) || g.TeamGameResults.Any(gr => gr.Team.Owner.Region == filters.Region))
                             .AsQueryable();

            if (!filters.GameId.HasValue)
            {
                return(foundGames);
            }
            return(foundGames.Where(g => g.GameId == filters.GameId.Value));
        }
Ejemplo n.º 4
0
 private static Game[] GetPage(GameFilterModel model, IQueryable <Game> filteredGames) =>
 filteredGames.Skip(model.Page * GamesPerPage)
 .Take(GamesPerPage)
 .Include(g => g.TeamGameResults).ThenInclude(cgr => cgr.Team)
 .Include(g => g.TeamGameResults).ThenInclude(cgr => cgr.Results)
 .OrderByDescending(g => g.GameId)
 .ToArray()
 .Select(g =>
 {
     g.PathToLog = null;
     g.TeamGameResults.ToList().ForEach(r =>
     {
         r.Team.CvarcTag = Guid.Empty;
     });
     return(g);
 }).ToArray();
Ejemplo n.º 5
0
        private IQueryable <Game> GetGames(GameFilterModel filters)
        {
            var filterTeamName = filters.TeamName;

            if (string.IsNullOrEmpty(filterTeamName))
            {
                return(context.Games);
            }
            var gamesIds = context.TeamGameResults.Include(tr => tr.Game).Include(tr => tr.Team)
                           .Where(tr => !string.IsNullOrEmpty(tr.Team.Name) &&
                                  tr.Team.Name.StartsWith(filterTeamName, StringComparison.CurrentCultureIgnoreCase))
                           .Select(tr => tr.Game.GameId)
                           .Distinct()
                           .ToArray();

            return(context.Games.Where(g => gamesIds.Contains(g.GameId)));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Get([FromQuery] GameFilterModel filter)
        {
            if (this.workContext.CurrentUserId != filter.UserId)
            {
                return(this.Forbid());
            }

            var games = await this.gameService.GetAllAsync(
                userId : filter.UserId,
                groupType : filter.GroupType,
                orderBy : filter.OrderByEnum,
                page : filter.Page,
                pageSize : filter.PageSize);

            var models = games.ToModels();

            return(this.Ok(models, games.HasNextPage, games.TotalCount));
        }
Ejemplo n.º 7
0
 private static Game[] GetPage(GameFilterModel model, IQueryable <Game> filteredGames) =>
 filteredGames.Skip(model.Page * GamesPerPage)
 .Take(GamesPerPage)
 .ToArray();