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."); }
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); }
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); }
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); }
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."); } }
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(); } }
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(); }
public IReadOnlyDictionary <Id <Game>, IGame> FindAll() { return(AllGames.ToDictionary(x => x.GameId, x => x as IGame)); }
private Game GetNextGame(Game game) { return(AllGames[AllGames.IndexOf(game) + 1]); }