Exemple #1
0
        public async Task Save()
        {
            if (SelectedArenaSession == null)
            {
                return;
            }

            var arena            = SelectedArenaSession;
            var changeGameHeroes = false;

            if (arena.Hero != null &&
                Hero.Id != arena.Hero.Id)
            {
                if (MessageBox.Show(
                        "Changing arena hero, will change the hero for all games in this arena.\nAre you sure you want to save?",
                        "Change arena hero?",
                        MessageBoxButton.YesNo,
                        MessageBoxImage.Question,
                        MessageBoxResult.Yes) == MessageBoxResult.No)
                {
                    return;
                }
                changeGameHeroes = true;
            }
            arena.Hero        = Hero;
            arena.StartDate   = Started;
            arena.EndDate     = Ended;
            arena.Retired     = Retired;
            arena.Losses      = Losses;
            arena.Wins        = Wins;
            arena.RewardDust  = RewardDust;
            arena.RewardGold  = RewardGold;
            arena.RewardPacks = RewardPacks;
            arena.Notes       = Notes;
            arena.Server      = SelectedServer.Name;

            await gameManager.UpdateArenaSession(SelectedArenaSession);

            if (changeGameHeroes)
            {
                foreach (var game in SelectedArenaSession.Games)
                {
                    game.Hero = Hero;
                    await gameManager.UpdateGame(game);
                }
            }
            InitLatest();
            InitViewModel(SelectedArenaSession);
            events.PublishOnBackgroundThread(new SendNotification("Arena successfully saved."));
        }