Exemple #1
0
        private List <GameModel> GetGameModels(FcDeHoekContext context, DateTime fixtureDate)
        {
            var gameModels     = new List <GameModel>();
            var gamesToProcess = GameQueries.GetAllGamesBetweenDates(context, fixtureDate.AddDays(-3), fixtureDate.AddDays(4)).ToList();

            foreach (var game in gamesToProcess)
            {
                gameModels.Add(new GameModel
                {
                    AwayTeam      = game.GameAwayTeam.Name,
                    Competition   = game.GameCompetition.Description,
                    Forfait       = game.Forfait,
                    GoalsAwayTeam = game.GoalsAwayTeam,
                    GoalsHomeTeam = game.GoalsHomeTeam,
                    HomeTeam      = game.GameHomeTeam.Name,
                    IdHomeTeam    = game.IdHomeTeam,
                    IdAwayTeam    = game.IdAwayTeam,
                    IdCompetition = game.IdCompetition,
                    IdGame        = game.IdGame,
                    IsPostPoned   = game.NotPlayed,
                    MatchDay      = game.MatchDate
                });
            }

            return(gameModels);
        }
        public ActionResult Index()
        {
            using (var context = new FcDeHoekContext())
            {
                var model = new HomeModel
                {
                    CurrentDivision = GetCurrentDivision(context),
                    PreviousGame    = GameQueries.GetPreviousGame(context),
                    NextGame        = GameQueries.GetNextGame(context),
                    NextGames       = GameQueries.GetNextGames(context).ToList()
                };

                if (model.PreviousGame != null)
                {
                    model.PreviousGameHomeTeam = TeamQueries.GetTeamById(context, model.PreviousGame.IdHomeTeam);
                    model.PreviousGameAwayTeam = TeamQueries.GetTeamById(context, model.PreviousGame.IdAwayTeam);
                    model.PreviousGameResult   = model.PreviousGameHomeTeam.IdTeam == 1 ? eResult.GetResult(model.PreviousGame.GoalsHomeTeam, model.PreviousGame.GoalsAwayTeam) : eResult.GetResult(model.PreviousGame.GoalsAwayTeam, model.PreviousGame.GoalsHomeTeam);
                }


                if (model.NextGame != null)
                {
                    model.NextGameHomeTeam = TeamQueries.GetTeamById(context, model.NextGame.IdHomeTeam);
                    model.NextGameAwayTeam = TeamQueries.GetTeamById(context, model.NextGame.IdAwayTeam);
                }


                model.AllTeams = context.Teams.ToList();

                return(View(model));
            }
        }
Exemple #3
0
        private List <GameModel> GetGames(DateTime startDate, DateTime endDate)
        {
            using (var context = new FcDeHoekContext())
            {
                var gameModels = new List <GameModel>();
                var games      = GameQueries.GetAllGamesBetweenDates(context, startDate, endDate).OrderBy(g => g.MatchDate).ToList();
                foreach (var game in games)
                {
                    //var season = SeasonQueries.GetSeasonByDate(context, startDate);
                    gameModels.Add(new GameModel
                    {
                        IdGame          = game.IdGame,
                        AwayTeam        = game.GameAwayTeam.Name,
                        Competition     = game.GameCompetition.Description,
                        HomeTeam        = game.GameHomeTeam.Name,
                        MatchDay        = game.MatchDate,
                        IdAwayTeam      = game.IdAwayTeam,
                        IdHomeTeam      = game.IdHomeTeam,
                        IdCompetition   = game.IdCompetition,
                        IdSeason        = game.IdSeason,
                        IsPostPoned     = game.NotPlayed,
                        Forfait         = game.Forfait,
                        IdPostPonedGame = game.IdPostPonedGame
                    });
                }

                return(gameModels);
            }
        }
Exemple #4
0
        private ScoreModel GetScores(DateTime?fixtureDate)
        {
            using (var context = new FcDeHoekContext())
            {
                if (fixtureDate == null)
                {
                    fixtureDate = DateTime.Now.GetFirstDayOfWeek(CultureInfo.CurrentCulture);
                }

                var allGames     = GameQueries.GetAllGamesByIdSeason(context, SeasonQueries.GetSeasonByDate(context, (DateTime)fixtureDate)?.IdSeason ?? SeasonQueries.GetCurrentSeason(context).IdSeason).OrderBy(g => g.MatchDate).ToList();
                var allPlayWeeks = new List <DateTime>();
                foreach (var game in allGames)
                {
                    if (!allPlayWeeks.Contains(game.MatchDate))
                    {
                        allPlayWeeks.Add(game.MatchDate);
                    }
                }

                var model = new ScoreModel
                {
                    AllFixtureDates = allPlayWeeks,
                    Games           = GetGameModels(context, (DateTime)fixtureDate)
                };

                model.FixtureDate = model.Games.FirstOrDefault()?.MatchDay ?? DateTime.Now;

                return(model);
            }
        }
        private List <GameModel> GetGameModels(FcDeHoekContext context, List <Game> calendars, bool setIsNextGame = true)
        {
            var  games    = new List <GameModel>();
            Game nextGame = null;

            if (setIsNextGame)
            {
                nextGame = GameQueries.GetNextGame(context);
            }



            foreach (var calendar in calendars)
            {
                if (calendar.GameCompetition == null)
                {
                    calendar.GameCompetition = context.BaseDomains.FirstOrDefault(bd => bd.IdBaseDomain == calendar.IdCompetition);
                }

                if (calendar.GameHomeTeam == null)
                {
                    calendar.GameHomeTeam = TeamQueries.GetTeamById(context, calendar.IdHomeTeam);
                }

                if (calendar.GameAwayTeam == null)
                {
                    calendar.GameAwayTeam = TeamQueries.GetTeamById(context, calendar.IdAwayTeam);
                }


                games.Add(new GameModel
                {
                    IdGame      = calendar.IdGame,
                    Competition = calendar.GameCompetition?.Description,
                    MatchDay    = calendar.MatchDate.Date,
                    IdHomeTeam  = calendar.IdHomeTeam,
                    HomeTeam    = calendar.GameHomeTeam?.Name,
                    AwayTeam    = calendar.GameAwayTeam?.Name,
                    IdAwayTeam  = calendar.IdAwayTeam,
                    GameResult  = calendar.IdHomeTeam == 1 ? eResult.GetResult(calendar.GoalsHomeTeam, calendar.GoalsAwayTeam) : eResult.GetResult(calendar.GoalsAwayTeam, calendar.GoalsHomeTeam),
                    Result      = calendar.NotPlayed
                        ? "Afgelast"
                        : !calendar.Forfait
                            ? calendar.GoalsHomeTeam != null
                                ? $"{calendar.GoalsHomeTeam} - {calendar.GoalsAwayTeam}"
                                : " - "
                            : calendar.GoalsHomeTeam != null
                                ? $"{calendar.GoalsHomeTeam} - {calendar.GoalsAwayTeam} (F.F.)"
                                : "F.F.",
                    IsNextGame = calendar.IdGame == nextGame?.IdGame
                });
            }

            return(games);
        }
        private Dictionary <DateTime, List <GameModel> > GetGamesPerDate(FcDeHoekContext context, List <Game> calendars)
        {
            var dictionary    = new Dictionary <DateTime, List <GameModel> >();
            var currentSeason = SeasonQueries.GetCurrentSeason(context);
            var gamesDeHoek   = GameQueries.GetAllGamesByIdSeasonAndIdTeam(context, currentSeason.IdSeason, 1).OrderBy(g => g.MatchDate).ToList();

            foreach (var deHoekGame in gamesDeHoek)
            {
                var gamesForMatchDate = calendars.Where(c => c.MatchDate == deHoekGame.MatchDate).ToList();
                dictionary.Add(deHoekGame.MatchDate, GetGameModels(context, gamesForMatchDate, false));
            }

            return(dictionary);
        }
Exemple #7
0
        public ActionResult EditGame(int idGame)
        {
            using (var context = new FcDeHoekContext())
            {
                GameManagerModel manageModel;

                if (idGame == 0)
                {
                    manageModel = new GameManagerModel
                    {
                        Games = new List <GameModel> {
                            new GameModel()
                        },
                        Teams            = context.Teams.ToList(),
                        CompetitionTypes = eCompetitionType.GetAllCompetitionTypes(),
                        AddAnother       = false
                    };
                }
                else
                {
                    var game = GameQueries.GetById(context, idGame);
                    manageModel = new GameManagerModel
                    {
                        Games = new List <GameModel> {
                            new GameModel
                            {
                                AwayTeam      = game.GameAwayTeam.Name,
                                Competition   = game.GameCompetition.Description,
                                Forfait       = game.Forfait,
                                GoalsHomeTeam = game.GoalsHomeTeam,
                                GoalsAwayTeam = game.GoalsAwayTeam,
                                GameResult    = 0,
                                HomeTeam      = game.GameHomeTeam.Name,
                                IdAwayTeam    = game.IdAwayTeam,
                                IdCompetition = game.IdCompetition,
                                IdGame        = game.IdGame,
                                IdHomeTeam    = game.IdHomeTeam,
                                MatchDay      = game.MatchDate
                            }
                        },
                        Teams            = context.Teams.ToList(),
                        CompetitionTypes = eCompetitionType.GetAllCompetitionTypes(),
                        AddAnother       = false
                    };
                }

                return(View("Detail", manageModel));
            }
        }
 public ActionResult AllGames()
 {
     using (var context = new FcDeHoekContext())
     {
         var currentSeason = SeasonQueries.GetCurrentSeason(context);
         var calendars     = GameQueries.GetAllGamesByIdSeason(context, currentSeason.IdSeason).OrderBy(g => g.MatchDate).ToList();
         var model         = new FullCalendarModel
         {
             SeasonDescription =
                 $"{currentSeason.SeasonStartYear} - {currentSeason.SeasonEndYear}",
             GamesPerDate = GetGamesPerDate(context, calendars)
         };
         return(View(model));
     }
 }
 public ReportController(
     IAuthQueries authQueries,
     ReportQueries queries,
     BrandQueries brandQueries,
     GameQueries gameQueries,
     IPaymentQueries paymentQueries,
     IEventBus eventBus)
 {
     _authQueries    = authQueries;
     _queries        = queries;
     _brandQueries   = brandQueries;
     _gameQueries    = gameQueries;
     _paymentQueries = paymentQueries;
     _eventBus       = eventBus;
 }
Exemple #10
0
        public ActionResult Save(ScoreModel model)
        {
            using (var context = new FcDeHoekContext())
            {
                foreach (var gameModel in model.Games)
                {
                    var game = GameQueries.GetById(context, gameModel.IdGame);
                    game.GoalsHomeTeam = gameModel.GoalsHomeTeam;
                    game.GoalsAwayTeam = gameModel.GoalsAwayTeam;
                    context.Games.AddOrUpdate(game);
                    context.SaveChanges();
                }

                return(RedirectToAction("EditScores", new { fixtureDate = model.FixtureDate }));
            }
        }
Exemple #11
0
        private void PostCharacterJoinedGameEvent(
            RequestCache requestCache)
        {
            // Update the character state to match the new game
            m_character_state.game_id   = m_game_id;
            m_character_state.game_name = GameQueries.GetGameName(requestCache.DatabaseContext, m_game_id);

            // Add a note to the game event log that this new character joined the new game
            GameEventQueries.AddEvent(
                requestCache.DatabaseContext,
                m_game_id,
                new GameEvent_CharacterJoinedGame()
            {
                character_state = m_character_state
            });
        }
 private void LookupGameIRCDetails(
     RequestCache requestCache)
 {
     // $SECURITY
     // Sending the IRC key unencrypted like this is not secure.
     // We should be encrypting it with the client's public key RSA-style.
     // Also we should re-generate this key any time some one removes their character from the game.
     // Anytime a character joins the game we should assume that they can snoop on the IRC channel.
     GameQueries.GetGameIRCDetails(
         requestCache.DatabaseContext,
         m_game_id,
         out m_irc_enabled,
         out m_irc_server,
         out m_irc_port,
         out m_irc_encryption_key,
         out m_irc_encryption_enabled);
 }
Exemple #13
0
        // GET: FcDeHoekGame
        public ActionResult FcDeHoekGameDetail(int?idGame)
        {
            using (var context = new FcDeHoekContext())
            {
                Game game = null;
                if (idGame == null)
                {
                    game = GameQueries.GetPreviousGame(context);
                }
                else
                {
                    game = GameQueries.GetById(context, (int)idGame);
                }

                var fcDeHoekGame = GetGameModel(context, game);
                return(View("FcDeHoekGameDetail", fcDeHoekGame));
            }
        }
Exemple #14
0
        private List <FcDeHoekGame> GetAllFcDeHoekGames(FcDeHoekContext context, DateTime matchDate)
        {
            var gameModelList = new List <FcDeHoekGame>();
            var season        = SeasonQueries.GetSeasonByDate(context, matchDate) ?? SeasonQueries.GetCurrentSeason(context);
            var games         = GameQueries.GetAllGamesByIdSeasonAndIdTeam(context, season.IdSeason, 1).ToList();

            foreach (var game in games)
            {
                gameModelList.Add(new FcDeHoekGame
                {
                    IdGame      = game.IdGame,
                    MatchDate   = game.MatchDate,
                    GameFixture = $"{game.GameHomeTeam.Name} - {game.GameAwayTeam.Name}"
                });
            }

            return(gameModelList);
        }
Exemple #15
0
        public ActionResult Save(GameManagerModel model)
        {
            using (var context = new FcDeHoekContext())
            {
                var game = GameQueries.GetById(context, model.Games[0].IdGame);
                if (game == null)
                {
                    game = new Game();
                }

                foreach (var gameModel in model.Games)
                {
                    game.GoalsAwayTeam   = gameModel.GoalsAwayTeam;
                    game.GoalsHomeTeam   = gameModel.GoalsHomeTeam;
                    game.Forfait         = gameModel.Forfait;
                    game.IdCompetition   = gameModel.IdCompetition;
                    game.IdAwayTeam      = gameModel.IdAwayTeam;
                    game.IdHomeTeam      = gameModel.IdHomeTeam;
                    game.IdPostPonedGame = gameModel.IdPostPonedGame;
                    game.IdSeason        = SeasonQueries.GetSeasonByDate(context, gameModel.MatchDay)?.IdSeason ?? SeasonQueries.GetCurrentSeason(context).IdSeason;
                    game.MatchDate       = gameModel.MatchDay;
                    game.NotPlayed       = gameModel.IsPostPoned;

                    context.Games.AddOrUpdate(game);
                    context.SaveChanges();
                }


                if (model.AddAnother)
                {
                    if (model.Games.Count > 1)
                    {
                        return(RedirectToAction("AddMultipleGames", "GameManager", new { idGame = 0 }));
                    }
                    else
                    {
                        return(RedirectToAction("EditGame", "GameManager", new { idGame = 0 }));
                    }
                }


                return(RedirectToAction("Index", "GameManager"));
            }
        }
        private List <RecordsTempData> GetCurrentData(FcDeHoekContext context, List <RecordsTempData> historicData, int idSeason = -1)
        {
            var allPlayers = PersonQueries.GetPlayers(context).ToList();

            foreach (var player in allPlayers)
            {
                var stats = PersonStatisticsQueries.GetByIdPerson(context, player.IdPerson).ToList();
                if (stats.Any())
                {
                    var tempData = new RecordsTempData
                    {
                        IdPlayer = player.IdPerson,
                        Player   = $"{player.Name} {player.FirstName}"
                    };

                    foreach (var stat in stats)
                    {
                        var game = GameQueries.GetById(context, stat.IdGame);
                        if (game != null && game.IdCompetition == eCompetitionType.League && (game.IdSeason == idSeason || idSeason == -1))
                        {
                            if ((stat.Goals != null && stat.Goals != 0) || stat.Assists != 0)
                            {
                                var playersHistoricData =
                                    historicData.FirstOrDefault(hd => hd.IdPlayer == player.IdPerson);
                                if (playersHistoricData != null)
                                {
                                    playersHistoricData.Assists += stat.Assists;
                                    playersHistoricData.Goals   += stat.Goals ?? 0;
                                }
                                else
                                {
                                    tempData.Assists += stat.Assists;
                                    tempData.Goals   += stat.Goals ?? 0;
                                    historicData.Add(tempData);
                                }
                            }
                        }
                    }
                }
            }

            return(historicData);
        }
        protected bool VerifyGameExists(
            RequestCache requestCache,
            int current_game_id,
            out string result_code)
        {
            bool success;

            if (GameQueries.VerifyGameExists(requestCache.DatabaseContext, current_game_id))
            {
                result_code = SuccessMessages.GENERAL_SUCCESS;
                success     = true;
            }
            else
            {
                result_code = ErrorMessages.INVALID_GAME;
                success     = false;
            }

            return(success);
        }
        protected override bool ProcessRequestInternal(
            RequestCache requestCache,
            out string result_code)
        {
            result_code = SuccessMessages.GENERAL_SUCCESS;

            // Get the list of games without character names
            gameList = GameQueries.GetGameList(requestCache.DatabaseContext);

            // For each game, get the character list
            foreach (GameResponseEntry entry in gameList)
            {
                entry.character_names =
                    GameQueries.GetCharacterNamesInGame(
                        requestCache.DatabaseContext,
                        entry.game_id);
            }

            return(true);
        }
        protected override bool ProcessRequestInternal(
            RequestCache requestCache,
            out string result_code)
        {
            bool success = false;

            result_code = SuccessMessages.GENERAL_SUCCESS;

            if (GameQueries.VerifyAccountOwnsGame(requestCache.DatabaseContext, m_account_id, m_game_id))
            {
                GameQueries.DeleteGame(requestCache.DatabaseContext, m_game_id);
                WorldCache.ClearWorld(requestCache.SessionCache, m_game_id);
                success = true;
            }
            else
            {
                result_code = ErrorMessages.NOT_GAME_OWNER;
            }

            return(success);
        }
Exemple #20
0
        protected override bool ProcessRequestInternal(
            RequestCache requestCache,
            out string result_code)
        {
            bool success = false;

            result_code = SuccessMessages.GENERAL_SUCCESS;

            m_new_game_id =
                GameQueries.CreateGame(
                    requestCache.DatabaseContext,
                    m_account_id,
                    m_game_name,
                    m_dungeon_size,
                    m_dungeon_difficulty,
                    m_irc_enabled,
                    m_irc_server,
                    m_irc_port,
                    m_irc_encryption_enabled);

            if (m_new_game_id >= 0)
            {
                success =
                    WorldCache.BuildWorld(
                        requestCache.DatabaseContext,
                        requestCache.SessionCache,
                        m_new_game_id,
                        out result_code);

                if (!success)
                {
                    GameQueries.DeleteGame(requestCache.DatabaseContext, m_new_game_id);
                }
            }

            return(success);
        }
        private List <RankModel> BuildLeagueRanking()
        {
            using (var context = new FcDeHoekContext())
            {
                var model    = new List <RankModel>();
                var allGames = GameQueries.GetAllGamesByIdSeasonAndIdCompetition(context,
                                                                                 SeasonQueries.GetCurrentSeason(context).IdSeason, eCompetitionType.League).ToList();



                var allPlayedGames = allGames.Where(g => g.GoalsHomeTeam != null && g.GoalsAwayTeam != null).ToList();

                var teams = new List <string>();
                teams.AddRange(allGames.Select(g => g.GameHomeTeam.Name).Distinct().ToList());
                teams.AddRange(allGames.Select(g => g.GameAwayTeam.Name).Distinct().ToList());
                teams = teams.Distinct().ToList();

                if (teams.Count < allPlayedGames.Count && allPlayedGames.Count == 0)
                {
                    return(CreateZeroRanking(teams));
                }

                foreach (var team in teams)
                {
                    var ranking = new RankModel {
                        Team = team
                    };

                    var homeGames = allPlayedGames.Where(g => g.GameHomeTeam.Name == team).ToList();
                    foreach (var homeGame in homeGames)
                    {
                        ranking.GoalsScored   += homeGame.GoalsHomeTeam ?? 0;
                        ranking.GoalsConceded += homeGame.GoalsAwayTeam ?? 0;

                        if (homeGame.GoalsHomeTeam > homeGame.GoalsAwayTeam)
                        {
                            ranking.GamesWon += 1;
                        }
                        else if (homeGame.GoalsHomeTeam == homeGame.GoalsAwayTeam)
                        {
                            ranking.GamesDrawn += 1;
                        }
                        else
                        {
                            ranking.GamesLost += 1;
                        }

                        ranking.GamesPlayed++;
                    }

                    var awayGames = allPlayedGames.Where(g => g.GameAwayTeam.Name == team).ToList();
                    foreach (var awayGame in awayGames)
                    {
                        ranking.GoalsScored   += awayGame.GoalsAwayTeam ?? 0;
                        ranking.GoalsConceded += awayGame.GoalsHomeTeam ?? 0;

                        if (awayGame.GoalsAwayTeam > awayGame.GoalsHomeTeam)
                        {
                            ranking.GamesWon += 1;
                        }
                        else if (awayGame.GoalsHomeTeam == awayGame.GoalsAwayTeam)
                        {
                            ranking.GamesDrawn += 1;
                        }
                        else
                        {
                            ranking.GamesLost += 1;
                        }

                        ranking.GamesPlayed++;
                    }

                    model.Add(ranking);
                }

                foreach (var ranking in model)
                {
                    ranking.Points = (ranking.GamesWon * 3) + ranking.GamesDrawn;
                }

                return(model.OrderByDescending(m => m.Points).ThenByDescending(m => m.GamesWon).ThenByDescending(m => (m.GoalsScored - m.GoalsConceded)).ThenByDescending(m => m.GoalsScored).ToList());
            }
        }
Exemple #22
0
 private void LeaveGame(
     RequestCache requestCache)
 {
     GameQueries.UnBindCharacterFromGame(requestCache.DatabaseContext, m_character_id);
 }
Exemple #23
0
 private void JoinGame(
     RequestCache requestCache)
 {
     GameQueries.BindCharacterToGame(requestCache.DatabaseContext, m_character_id, m_game_id);
 }
Exemple #24
0
        private StatisticsModel GetPlayerStats(FcDeHoekContext context, int idPerson)
        {
            var stats = new StatisticsModel
            {
                FriendlyGamesPlayed = 0,
                GoalsInFriendly     = 0,
                AssistsInFriendly   = 0,

                LeagueGamesPlayed = 0,
                GoalsInLeague     = 0,
                AssistsInLeague   = 0,

                CupGamesPlayed = 0,
                GoalsInCup     = 0,
                AssistsInCup   = 0,
            };

            var allPlayerStats  = PersonStatisticsQueries.GetByIdPerson(context, idPerson).ToList();
            var season          = SeasonQueries.GetCurrentSeason(context);
            var leagueGameIds   = GameQueries.GetAllGamesByIdSeasonAndIdCompetition(context, season.IdSeason, eCompetitionType.League).Select(lg => lg.IdGame).ToList();
            var friendlyGameIds = GameQueries.GetAllGamesByIdSeasonAndIdCompetition(context, season.IdSeason, eCompetitionType.Friendly).Select(lf => lf.IdGame).ToList();
            var cupGameIds      = GameQueries.GetAllGamesByIdSeasonAndIdCompetition(context, season.IdSeason, eCompetitionType.Cup).Select(lc => lc.IdGame).ToList();

            foreach (var playerStat in allPlayerStats)
            {
                if (leagueGameIds.Contains(playerStat.IdGame))
                {
                    if (playerStat.Played ?? false)
                    {
                        stats.LeagueGamesPlayed++;
                    }

                    stats.GoalsInLeague   += playerStat.Goals ?? 0;
                    stats.AssistsInLeague += playerStat.Assists;
                }

                if (friendlyGameIds.Contains(playerStat.IdGame))
                {
                    if (playerStat.Played ?? false)
                    {
                        stats.FriendlyGamesPlayed++;
                    }

                    stats.GoalsInFriendly   += playerStat.Goals ?? 0;
                    stats.AssistsInFriendly += playerStat.Assists;
                }

                if (cupGameIds.Contains(playerStat.IdGame))
                {
                    if (playerStat.Played ?? false)
                    {
                        stats.CupGamesPlayed++;
                    }

                    stats.GoalsInCup   += playerStat.Goals ?? 0;
                    stats.AssistsInCup += playerStat.Assists;
                }
            }

            stats.TotalGamesPlayed = stats.FriendlyGamesPlayed + stats.LeagueGamesPlayed + stats.CupGamesPlayed;
            stats.TotalGoalsScored = stats.GoalsInFriendly + stats.GoalsInLeague + stats.GoalsInCup;
            stats.TotalAssists     = stats.AssistsInFriendly + stats.AssistsInLeague + stats.AssistsInCup;

            return(stats);
        }
Exemple #25
0
 public Game GetById(int id)
 {
     return(_context.Game.FirstOrDefault(GameQueries.ExpById(id)));
 }