Exemple #1
0
        public async Task Merge()
        {
            if (MessageBox.Show(
                    "Delete this arena and move all games to the previous arena?",
                    "Merge arenas?",
                    MessageBoxButton.YesNo,
                    MessageBoxImage.Question) != MessageBoxResult.Yes)
            {
                return;
            }

            var previousArena = arenaRepository.Query(a => a.Where(x => x.StartDate < SelectedArenaSession.StartDate).OrderByDescending(x => x.StartDate).FirstOrDefault().ToModel());

            if (previousArena == null)
            {
                MessageBox.Show("No previous arena found", "Not found", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (previousArena.Hero.Id != SelectedArenaSession.Hero.Id)
            {
                MessageBox.Show(string.Format("Cannot merge because previous arena hero is not a {0}.", SelectedArenaSession.Hero.ClassName), "Cannot merge", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            await gameManager.MergeArenas(SelectedArenaSession, previousArena);

            previousArena = arenaRepository.Query(a => a.FirstOrDefault(x => x.Id == previousArena.Id).ToModel());

            Load(previousArena);
        }