示例#1
0
        public async Task <PagedList <Invite> > GetInvites(InviteParams inviteParams)
        {
            var invites = _context.Users.OrderByDescending(u => u.LastActive).AsQueryable();

            invites = invites.Where(u => u.UserRoles.Select(ur => ur.Role.Name).Contains("Guest"));

            if (!string.IsNullOrEmpty(inviteParams.Status))
            {
                if (inviteParams.Status.Equals("PENDING"))
                {
                    invites = invites.Where(i => !i.InviteAnswers.IsAny());
                }
                else
                {
                    invites = invites.Where(i => i.InviteAnswers.IsAny());
                }
            }

            if (inviteParams.IsBlacklisted)
            {
                invites = invites.Where(i => i.IsBlacklisted);
            }

            return(await PagedList <Invite> .CreateAsync(invites, inviteParams.PageNumber, inviteParams.PageSize));
        }
示例#2
0
        public async Task <PagedList <InviteDto> > GetUserInvites(InviteParams inviteParams)
        {
            var users   = _context.Users.OrderBy(u => u.UserName).AsQueryable();
            var invites = _context.Invites.AsQueryable();

            if (inviteParams.Predicate == "invited")
            {
                invites = invites.Where(invite => invite.SourceUserId == inviteParams.UserId);
                users   = invites.Select(invite => invite.InvitedUser);
            }

            if (inviteParams.Predicate == "invitedBy")
            {
                invites = invites.Where(invite => invite.InvitedUserId == inviteParams.UserId);
                users   = invites.Select(invite => invite.SourceUser);
            }

            var invitedUsers = users.Select(user => new InviteDto {
                Username = user.UserName,
                Age      = user.DateOfBirth.CalculateAge(),
                PhotoUrl = user.Photos.FirstOrDefault(p => p.isMain).Url,
                City     = user.City,
                Id       = user.Id
            });

            return(await PagedList <InviteDto> .CreateAsync(invitedUsers, inviteParams.PageNumber, inviteParams.PageSize));
        }
示例#3
0
        public async Task <IActionResult> GetAllInvites([FromQuery] InviteParams inviteParams)
        {
            var invites = await _repo.GetInvites(inviteParams);

            var invitesToReturn = _mapper.Map <IEnumerable <InviteDetailsMultipleDto> >(invites);

            Response.AddPagination(invites.CurrentPage, invites.PageSize, invites.TotalCount, invites.TotalPages);
            return(Ok(invitesToReturn));
        }
        public async Task <ActionResult <IEnumerable <InviteDto> > > GetUserInvites([FromQuery] InviteParams inviteParams)
        {
            inviteParams.UserId = User.GetUserId();
            var users = await _unitOfWork.InviteRepository.GetUserInvites(inviteParams);

            Response.AddPaginationHeader(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages);

            return(Ok(users));
        }