Пример #1
0
        private static string GetOverviewOfGameUpdates(GamesConfigurationFile newFile)
        {
            var overview     = $"Reloaded {GamesFileName}. ";
            var newGames     = newFile.Games.Except(AllGames).Count();
            var updatedGames = AllGames.Count(existingGame => !existingGame.Matches(newFile.Games.SingleOrDefault(x => x.GameId == existingGame.GameId)));

            return($"Reloaded {GamesFileName}. Updated {newGames + updatedGames} games.");
        }
Пример #2
0
        public void NewGame()
        {
            var view = new GameDetailView(Items, null);

            view.ShowDialog();
            foreach (var item in Items)
            {
                if (!AllGames.Any(a => a.Month.Equals(item.Month) && a.Theme.Equals(item.Theme)))
                {
                    AllGames.Add(item);
                }
            }
            Items = GetGameItems(Filter);
        }
Пример #3
0
            public static GameInfo CreateGame(Player.PlayerInfo player)
            {
                GameInfo res = new GameInfo();

                res.Creator      = player;
                res.ID           = (uint)(AllGames.Count + 0x5DC695);
                res.MID          = (uint)(AllGames.Count + 0x1129DA20);
                res.isActive     = true;
                res.Update       = true;
                res.OtherPlayers = new List <Player.PlayerInfo>();
                res.Attributes   = new List <Attribut>();
                res.GAMESETTING  = 0;
                res.GAMESTATE    = 0;
                AllGames.Add(res);
                return(res);
            }
Пример #4
0
        private CreateGameInstanceResponse CreateGame(CreateGameInstance request)
        {
            var result = new CreateGameInstanceResponse();
            var game   = new CardGame();

            game.Id     = Guid.NewGuid().ToString();
            game.Deck   = CardFactory.CardDealersDeck();
            game.Events = new List <CardGameEvent>();
            game.Events.Add(new CardGameEvent
            {
                ClientId = "SERVER",
                GameId   = game.Id,
                Message  = "Game Created at " + DateTime.UtcNow.ToString("F"),
                Type     = "SYSTEM"
            });

            Cache.Set(game.Id, game, TimeSpan.FromHours(1));
            var allGames = Cache.Get <AllGames>(AllGamesSummaries);

            if (allGames == null)
            {
                allGames = new AllGames {
                    Games = new List <GameSummary>()
                };
            }
            if (allGames.Games == null)
            {
                allGames.Games = new List <GameSummary>();
            }

            allGames.Games.Add(new GameSummary {
                GameId = game.Id
            });
            Cache.Set(AllGamesSummaries, allGames);
            JoinGame(new PlayerJoinGame
            {
                GameId              = game.Id,
                PlayerId            = request.PlayerOneId,
                PlayerDisplayerName = request.PlayerDisplayName
            });

            result.GameId = game.Id;
            return(result);
        }
Пример #5
0
        void RemovePlayer(PlayerModel player)
        {
            if (Players[player.LocalId] == null)
            {
                return;
            }
            Players[player.LocalId] = null;

            var curCount = CurPlayerCount;

            if (curCount == 0)
            {
                Log("All players left, stopping current simulation...");
                State = EGameState.Idle;
                AllGames.Remove(GetGameIdWithPlayerId(player.UserId));
            }
            else
            {
                Log(curCount + " players remaining.");
            }
        }
Пример #6
0
        public void DeleteGames()
        {
            if (!Items.Any(w => w.Delete))
            {
                MessageBox.Show("Gelieve een of meerdere wedstrijden te selecteren!", "Waarschuwing", MessageBoxButton.OK,
                                MessageBoxImage.Exclamation);
                return;
            }

            if (MessageBox.Show("Wenst u de geselecteerde registraties te verwijderen?", "Waarschuwing",
                                MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.OK)
            {
                IsBusy = true;
                var bgWorker = new BackgroundWorker {
                    WorkerSupportsCancellation = true
                };
                bgWorker.DoWork += (sender, args) =>
                {
                    try
                    {
                        foreach (var item in Items.Where(w => w.Delete))
                        {
                            AllGames.Where(w => w.Month.Equals(item.Month) && w.Theme.Equals(item.Theme)).ToList()
                            .ForEach(u => u.Delete = true);
                        }

                        XmlFactory.WriteXml(FolderFactory.MemberFolder, "Games", AllGames);
                        Items = GetGameItems(Filter);
                    }
                    catch
                    {
                        IsBusy = false;
                    }
                };

                bgWorker.RunWorkerCompleted += (sender, args) => { IsBusy = false; };
                bgWorker.RunWorkerAsync();
            }
        }
Пример #7
0
        public void Save()
        {
            var canClose = false;

            IsBusy = true;
            var bgWorker = new BackgroundWorker {
                WorkerSupportsCancellation = true
            };

            bgWorker.DoWork += (sender, args) =>
            {
                try
                {
                    AllGames = GameRepository.Get(null);

                    if (SelectedGame == null && AllGames.Any(w => w.Month.Equals(Month) && w.Theme.Equals(Theme)))
                    {
                        MessageBox.Show($"Er bestaat reeds een wedstrijd met id {Month} - {Theme}.", "Fout",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                        IsBusy = false;
                        return;
                    }
                    if (string.IsNullOrEmpty(Resolution))
                    {
                        MessageBox.Show("Gelieve een resolutie in te geven.", "Fout",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                        IsBusy = false;
                        return;
                    }
                    if (!MaxToUpload.HasValue)
                    {
                        MessageBox.Show("Gelieve een max in te geven.", "Fout",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                        IsBusy = false;
                        return;
                    }
                    var gameToSave = SelectedGame != null
                        ? AllGames.FirstOrDefault(w =>
                                                  w.Month.Equals(SelectedGame.Month) && w.Theme.Equals(SelectedGame.Theme))
                        : new GameItem();

                    if (gameToSave != null)
                    {
                        gameToSave.Club        = OrganisationName;
                        gameToSave.Month       = Month;
                        gameToSave.Theme       = Theme;
                        gameToSave.GameDate    = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        gameToSave.Resolution  = Resolution;
                        gameToSave.MaxToUpload = MaxToUpload.Value;
                        if (SelectedGame == null)
                        {
                            AllGames.Add(gameToSave);
                        }
                    }

                    XmlFactory.WriteXml(FolderFactory.MemberFolder, "Games", AllGames);
                    LogFactory.WriteToLog("De wedstrijd is met succes aangepast.", "GameDetailViewModel.Save",
                                          ActivityLogTypes.Success, App.ActivityLogFileName);
                    IsBusy = false;
                    MessageBox.Show("De gegevens zijn met succes bewaard.", "Informatie",
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                    canClose = true;
                }
                catch (Exception ex)
                {
                    LogFactory.WriteToLog(ex.Message, "GameDetailViewModel.Save", ActivityLogTypes.Error,
                                          App.ActivityLogFileName);
                    IsBusy = false;
                    MessageBox.Show("Er is een fout opgetreden tijdens het bewaren van het lid.", "Fout",
                                    MessageBoxButton.OK, MessageBoxImage.Error);
                }
            };

            bgWorker.RunWorkerCompleted += (sender, args) => CloseWindow(canClose);
            bgWorker.RunWorkerAsync();
        }
Пример #8
0
 public IReadOnlyDictionary <Id <Game>, IGame> FindAll()
 {
     return(AllGames.ToDictionary(x => x.GameId, x => x as IGame));
 }
Пример #9
0
 private Game GetNextGame(Game game)
 {
     return(AllGames[AllGames.IndexOf(game) + 1]);
 }