Ejemplo n.º 1
0
        public IEnumerable <ProjectLogicModel> GetProjectByUser(int userId, int pageNumber, int pageCount,
                                                                string queryText)
        {
            var skipCount             = (pageNumber - 1) * pageCount;
            var isQueryByText         = !string.IsNullOrEmpty(queryText);
            var participateProjectIds =
                _inviteRepository.Query().Where(x => x.User.Id == userId).Select(x => x.Project.Id).ToList();

            return(_projectRepository.Query()?.Where(x => (x.Owner.Id == userId || participateProjectIds.Contains(x.Id)) &&
                                                     (!isQueryByText || x.Name.Contains(queryText)))
                   .OrderBy(x => x.Name)
                   .Skip(skipCount)
                   .Take(pageCount)
                   .Select(x => new ProjectLogicModel
            {
                Id = x.Id,
                Name = x.Name,
                OwnerLogicModel = x.Owner.ToLogicModel()
            }));
        }
Ejemplo n.º 2
0
        public async Task <ApiResponse <Pagination <Invite> > > Handle(InviteFilterCommand request,
                                                                       CancellationToken cancellationToken)
        {
            var query = _repository.Query(x =>
                                          (request.MemberId == Guid.Empty || x.MemberId == request.MemberId) &&
                                          (request.GuildId == Guid.Empty || x.GuildId == request.GuildId), true);
            var count   = query.Count();
            var invites = await query.Take(request.Count).ToListAsync(cancellationToken);

            var invitesPaginated = new Pagination <Invite>(invites, count, request.Count);

            return(new ApiResponse <Pagination <Invite> >(invitesPaginated));
        }
Ejemplo n.º 3
0
        public void ExpireInvite(long id)
        {
            var invite = _inviteRepository.Query()
                         .Where(inv => !inv.Deleted && !inv.IsUsed && inv.IdUser == id)
                         .OrderByDescending(inv => inv.ExpiryDate)
                         .FirstOrDefault();

            if (invite == null)
            {
                throw new EndpointNotFoundException("Can not get invite by user id");
            }

            invite.IsUsed = true;
            _inviteRepository.Save(invite);
        }
Ejemplo n.º 4
0
 public InviteLogicModel Get(int projectId, string email)
 {
     return(_inviteRepository.Query().FirstOrDefault(x => x.Project.Id == projectId && x.InviteEmail == email).ToLogicModel());
 }