Пример #1
0
        public static DetailsViewModel Create(ApplicationUser viewingUser, Set set, ICdnService cdnService)
        {
            var player1 = set.Player1;
            var player2 = set.Player2;

            var p1ProfilePic       = cdnService.GetUserProfilePicUrl(player1.User.Id, player1.User.ProfilePicKey, ClimbImageRules.ProfilePic);
            var p2ProfilePic       = cdnService.GetUserProfilePicUrl(player2.User.Id, player2.User.ProfilePicKey, ClimbImageRules.ProfilePic);
            var isPlaying          = viewingUser != null && (player1.UserID == viewingUser.Id || player2.UserID == viewingUser.Id);
            var opponentProfilePic = player1.UserID == viewingUser?.Id ? p2ProfilePic : p1ProfilePic;

            return(new DetailsViewModel(set, p1ProfilePic, p2ProfilePic, isPlaying, opponentProfilePic));
        }
Пример #2
0
        public static SeasonParticipantViewModel Create(SeasonLeagueUser participant, ICdnService cdnService)
        {
            var user       = participant.LeagueUser.User;
            var profilePic = cdnService.GetUserProfilePicUrl(user.Id, user.ProfilePicKey, ClimbImageRules.ProfilePic);

            return(new SeasonParticipantViewModel(participant, profilePic));
        }
Пример #3
0
        public static async Task <HomeViewModel> CreateAsync(ApplicationUser user, ApplicationUser homeUser, ICdnService cdnService, ApplicationDbContext dbContext)
        {
            var profilePic    = cdnService.GetUserProfilePicUrl(homeUser.Id, homeUser.ProfilePicKey, ClimbImageRules.ProfilePic);
            var sets          = homeUser.LeagueUsers.SelectMany(lu => lu.P1Sets.Union(lu.P2Sets)).ToArray();
            var recentSets    = sets.Where(s => s.IsComplete).Take(10).ToArray();
            var availableSets = sets.Where(s => !s.IsComplete).Take(100).ToArray();

#if DEBUG
            const bool showSetRequests = true;
#else
            var showSetRequests = user.Id == homeUser.Id;
#endif

            IReadOnlyList <SetRequest> setRequests = null;
            if (showSetRequests)
            {
                setRequests = await dbContext.SetRequests
                              .Include(sr => sr.Requester).ThenInclude(lu => lu.User).AsNoTracking()
                              .Include(sr => sr.Challenged).ThenInclude(lu => lu.User).AsNoTracking()
                              .Include(sr => sr.League).AsNoTracking()
                              .Where(sr => homeUser.LeagueUsers.Any(lu => lu.ID == sr.ChallengedID))
                              .OrderByDescending(sr => sr.DateCreated)
                              .ToArrayAsync();
            }

            return(new HomeViewModel(user, homeUser, profilePic, recentSets, availableSets, setRequests, showSetRequests));
        }
Пример #4
0
        public static LeagueUserViewModel Create(LeagueUser leagueUser, ICdnService cdnService, bool showUser, IUrlHelper urlHelper)
        {
            string title;
            string titleLink;
            string picture;

            if (showUser)
            {
                title     = leagueUser.DisplayName;
                titleLink = urlHelper.Action("Home", "User", new { leagueUser.UserID });
                picture   = cdnService.GetUserProfilePicUrl(leagueUser.User.Id, leagueUser.User.ProfilePicKey, ClimbImageRules.ProfilePic);
            }
            else
            {
                title     = leagueUser.League.Name;
                titleLink = urlHelper.Action("Home", "League", new { leagueUser.LeagueID });
                picture   = cdnService.GetImageUrl(leagueUser.League.Game.LogoImageKey, ClimbImageRules.GameLogo);
            }

            return(new LeagueUserViewModel(leagueUser, title, titleLink, picture));
        }
Пример #5
0
 public string GetProfilePic(ICdnService cdnService)
 {
     return(cdnService.GetUserProfilePicUrl(User.Id, User.ProfilePicKey, ClimbImageRules.ProfilePic));
 }