Exemplo n.º 1
0
        public async Task <ActionResult <IEnumerable <FlakDto> > > GetFlaksForUser([FromQuery]
                                                                                   FlakParams flakParams)
        {
            flakParams.Username = User.GetUsername();

            var flaks = await _flakRepository.GetFlaksForUser(flakParams);

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

            return(flaks);
        }
Exemplo n.º 2
0
        // 11/4 note parans are now changed - -  *********************************************
        public async Task <PagedList <FlakDto> > GetFlaksForUser(FlakParams flakParams)
        {
            var query = _context.Flaks
                        .Where(m => m.Sender.UserName == flakParams.Username) // 11-10 I added this !!!! Worked
                        .OrderByDescending(m => m.FlakSent)
                        .AsQueryable();

            query = flakParams.Container switch
            {
                "Inbox" => query.Where(u => u.Recipient.UserName == flakParams.Username &&
                                       u.RecipientDeleted == false),
                "Outbox" => query.Where(u => u.Sender.UserName == flakParams.Username &&
                                        u.SenderDeleted == false),
                _ => query.Where(u => u.Recipient.UserName ==
                                 flakParams.Username && u.RecipientDeleted == false && u.DateRead == null)
            };

            var flaks = query.ProjectTo <FlakDto>(_mapper.ConfigurationProvider);

            return(await PagedList <FlakDto> .CreateAsync(flaks, flakParams.PageNumber, flakParams.PageSize));
        }