예제 #1
0
        public async Task <ActionResult <WxBoxSettingsDto> > GetBoxSettings(int boxId = 1)
        {
            var wxBox = await boxService.GetBoxDetailsAsync(boxId);

            // banner 推荐
            var bannerApps = wxBox.WxBoxApps
                             .Where(x => x.WxApp.BannerUrl.IsNotNullOrWhiteSpace() && x.AppShowType.Equals(AppShowType.横幅))
                             .Select(x => x.WxApp)
                             .ToList();

            bannerApps.Shuffle();

            // 获取火爆游戏
            var bestApps = wxBox.WxBoxApps
                           .Take(8)
                           .Select(x => x.WxApp)
                           .ToList();

            bestApps.Shuffle();

            // 精品推荐
            var otherApps = wxBox.WxBoxApps.Select(x => x.WxApp).ToList();

            otherApps.Shuffle(); // 随机排序

            var settingsDto = new WxBoxSettingsDto
            {
                BannerApps = mapper.Map <List <WxApp>, List <WxAppDto> >(bannerApps),
                BestApps   = mapper.Map <List <WxApp>, List <WxAppDto> >(bestApps),
                OtherApps  = mapper.Map <List <WxApp>, List <WxAppDto> >(otherApps)
            };

            return(settingsDto);
        }
예제 #2
0
        public async Task <IActionResult> BoxDetails(int boxId = 1)
        {
            var wxBox = await boxService.GetBoxDetailsAsync(boxId);

            if (wxBox.IsNull())
            {
                return(NotFound());
            }

            var model = new BoxDetailViewModel
            {
                BoxId     = wxBox.Id,
                BoxName   = wxBox.Name,
                WxBoxApps = wxBox.WxBoxApps?.ToList()
            };

            return(View(model));
        }