Ejemplo n.º 1
0
        public async Task <ActionResult> Index(string tab = "")
        {
            var heroes = await db.GetHeroDetailsAsync();

            var str   = GetHeroesByPrimaryAttribute(heroes, DotaHeroPrimaryAttributeType.STRENGTH.Key);
            var agi   = GetHeroesByPrimaryAttribute(heroes, DotaHeroPrimaryAttributeType.AGILITY.Key);
            var intel = GetHeroesByPrimaryAttribute(heroes, DotaHeroPrimaryAttributeType.INTELLECT.Key);

            HeroSelectViewModel viewModel = new HeroSelectViewModel();

            viewModel.StrengthHeroes     = TranslateToViewModel(str);
            viewModel.AgilityHeroes      = TranslateToViewModel(agi);
            viewModel.IntelligenceHeroes = TranslateToViewModel(intel);

            if (tab == "grid")
            {
                return(View(viewModel));
            }
            else if (tab == "table")
            {
                return(View("IndexTable", viewModel));
            }
            else
            {
                return(View(viewModel));
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Index()
        {
            HomeViewModel viewModel = new HomeViewModel();

            IReadOnlyDictionary <uint, LeagueModel> leagues = null;

            try
            {
                leagues = await db.GetLeaguesAsync();
            }
            catch (HttpRequestException) { } // maybe log this in the future, for now do nothing
            viewModel.LeagueCount = leagues != null ? (int?)leagues.Count : null;

            var gameItems = await db.GetGameItemsAsync();

            var schema = await db.GetSchemaAsync();

            var heroes = await db.GetHeroDetailsAsync();

            var heroAbilities = await db.GetHeroAbilitiesAsync();

            viewModel.HeroCount        = heroes.Count;
            viewModel.HeroAbilityCount = heroAbilities.Count;
            viewModel.ShopItemCount    = schema.Items.Count;
            viewModel.InGameItemCount  = gameItems.Count;

            int?liveLeagueGameCount = null;

            try
            {
                liveLeagueGameCount = await db.GetLiveLeagueGameCountAsync();
            }
            catch (HttpRequestException)
            {
                // live league game endpoints return 500 or 404 randomly and without warning
                // maybe log this in the future, for now do nothing
            }
            viewModel.LiveLeagueGameCount = liveLeagueGameCount;

            var playerCounts = await db.GetPlayerCountsAsync();

            viewModel.InGamePlayerCount      = playerCounts.InGamePlayerCount;
            viewModel.DailyPeakPlayerCount   = playerCounts.DailyPeakPlayerCount;
            viewModel.AllTimePeakPlayerCount = playerCounts.AllTimePeakPlayerCount;

            LiveLeagueGameOverviewViewModel topLiveLeagueGame = null;

            try
            {
                topLiveLeagueGame = await GetTopLiveLeagueGameAsync();
            }
            catch (HttpRequestException)
            {
                // live league game endpoints return 500 or 404 randomly and without warning
                // maybe log this in the future, for now do nothing
            }
            viewModel.TopLiveLeagueGame = topLiveLeagueGame;

            viewModel.RandomHero = GetRandomHeroViewModel(heroes);
            await SetupRandomItems(viewModel, gameItems);

            var dotaBlogFeedItems = db.GetDotaBlogFeedItemsAsync();

            viewModel.DotaBlogFeedItems = AutoMapperConfiguration.Mapper.Map <
                IReadOnlyCollection <DotaBlogFeedItem>,
                IReadOnlyCollection <DotaBlogFeedItemViewModel> >
                                              (dotaBlogFeedItems);

            return(View(viewModel));
        }