Esempio n. 1
0
        public async Task <ListPollsBindingModel> GetPollsModel(string clubId, string userId)
        {
            Club club = await this.dbContext
                        .Clubs
                        .FirstOrDefaultAsync(x => x.Id == clubId);

            ListPollsBindingModel result = new ListPollsBindingModel
            {
                ClubPriceType = club.PriceType.ToString(),
                Club          = club,
                Polls         = this.dbContext
                                .Polls
                                .Where(x => x.ClubId == clubId && this.IsPollValid(x.ExpiredDate) && !x.IsDeleted)
                                .Select(x => new PollItemBindingModel
                {
                    Id             = x.Id,
                    Content        = x.Content,
                    VotesCount     = x.PollVotedUsers.Count,
                    ExpiredDate    = x.ExpiredDate,
                    Options        = x.Options.ToList(),
                    IsMultichoice  = x.IsMultichoice,
                    PollVotedUsers = x.PollVotedUsers.ToList()
                })
                                .ToList(),
                ClubId   = club.Id,
                UserId   = this.dbContext.Users.First(u => u.Id == userId).Id,
                Messages = await this.dbContext
                           .Messages
                           .Include(x => x.Sender)
                           .Where(x => x.ClubId == clubId)
                           .ToListAsync(),
            };

            return(result);
        }