コード例 #1
0
ファイル: Index.cshtml.cs プロジェクト: szlatkow/DevBetterWeb
        public static MemberLinksDTO FromMemberEntity(Member member)
        {
            var dto = new MemberLinksDTO
            {
                FullName       = member.UserFullName(),
                BlogUrl        = member.BlogUrl,
                GitHubUrl      = member.GitHubUrl,
                LinkedInUrl    = member.LinkedInUrl,
                OtherUrl       = member.OtherUrl,
                TwitchUrl      = member.TwitchUrl,
                YouTubeUrl     = member.YouTubeUrl,
                TwitterUrl     = member.TwitterUrl,
                UserId         = member.UserId,
                PEUsername     = member.PEUsername,
                PEBadgeURL     = $"https://projecteuler.net/profile/{member.PEUsername}.png",
                Address        = member.Address,
                CodinGameUrl   = member.CodinGameUrl,
                SubscribedDays = member.TotalSubscribedDays()
            };

            if (!(string.IsNullOrEmpty(dto.YouTubeUrl)) && !(dto.YouTubeUrl.Contains("?")))
            {
                dto.YouTubeUrl = dto.YouTubeUrl + "?sub_confirmation=1";
            }

            return(dto);
        }
コード例 #2
0
        public async Task OnGet()
        {
            var usersInMemberRole = await _userManager.GetUsersInRoleAsync(AuthConstants.Roles.MEMBERS);

            var usersInAlumniRole = await _userManager.GetUsersInRoleAsync(AuthConstants.Roles.ALUMNI);

            var memberUserIds = usersInMemberRole.Select(x => x.Id).ToList();
            var alumniUserIds = usersInAlumniRole.Select(x => x.Id).ToList();

            var memberSpec = new MembersHavingUserIdsWithBooksSpec(memberUserIds);
            var members    = await _repository.ListAsync(memberSpec);

            var alumniSpec = new MembersHavingUserIdsWithBooksSpec(alumniUserIds);
            var alumni     = await _repository.ListAsync(alumniSpec);

            Members = members
                      .Where(m => (m.BooksRead?.Count ?? 0) > 0 &&
                             !alumni.Any(alumni => alumni.Id == m.Id))
                      .Select(member => MemberLinksDTO.FromMemberEntity(member))
                      .ToList();

            Alumni = alumni.Select(alumni => MemberLinksDTO.FromMemberEntity(alumni))
                     .Where(m => (m.BooksRead?.Count ?? 0) > 0)
                     .ToList();

            var bookSpec = new BooksByMemberReadCountWithMembersWhoHaveReadSpec();

            Books = await _repository.ListAsync(bookSpec);
        }
コード例 #3
0
    public void ReturnsInputYouTubeUrlIfContainsQuestionMark()
    {
        var member = MemberHelpers.CreateWithDefaultConstructor();

        string youtubeInput = "https://www.youtube.com/ardalis?";

        member.UpdateLinks(null, null, null, null, null, null, youtubeInput, null);

        MemberLinksDTO dto = MemberLinksDTO.FromMemberEntity(member);

        var result = dto.YouTubeUrl;

        Assert.Equal(youtubeInput, result);
    }
コード例 #4
0
            public static MemberLinksDTO FromMemberEntity(Member member)
            {
                var dto = new MemberLinksDTO
                {
                    FullName  = member.UserFullName(),
                    BooksRead = member.BooksRead,
                    UserId    = member.UserId
                };

                if (dto.BooksRead == null)
                {
                    dto.BooksRead = new List <Book>();
                }

                return(dto);
            }
コード例 #5
0
ファイル: Index.cshtml.cs プロジェクト: patrykr5/DevBetterWeb
        public async Task OnGet()
        {
            var usersInMemberRole = await _userManager.GetUsersInRoleAsync(AuthConstants.Roles.MEMBERS);

            var usersInAlumniRole = await _userManager.GetUsersInRoleAsync(AuthConstants.Roles.ALUMNI);

            var memberUserIds = usersInMemberRole.Select(x => x.Id).ToList();
            var alumniUserIds = usersInAlumniRole.Select(x => x.Id).ToList();

            var memberSpec = new MembersHavingUserIdsWithBooksSpec(memberUserIds);
            var members    = await _memberRepository.ListAsync(memberSpec);

            var alumniSpec = new MembersHavingUserIdsWithBooksSpec(alumniUserIds);
            var alumni     = await _memberRepository.ListAsync(alumniSpec);

            Members = members
                      .Where(m => (m.BooksRead?.Count ?? 0) > 0 &&
                             !alumni.Any(alumni => alumni.Id == m.Id))
                      .Select(member => MemberLinksDTO.FromMemberEntity(member))
                      .ToList();

            var memberRanks = _rankingService.Rank(Members.Select(m => m.BooksRead !.Count));

            Members.ForEach(m => m.Rank = memberRanks[m.BooksRead !.Count]);