Beispiel #1
0
        public async Task <ListaStron <Wiadomosci> > GetWiadomosciDoUser(WiadomosciParametry wiadomosciParametry)
        {
            var wiadomosc = _context.Wiadomosc
                            .Include(u => u.Wyslal).ThenInclude(p => p.Zdjecia)
                            .Include(u => u.Odbiorca).ThenInclude(p => p.Zdjecia)
                            .AsQueryable();

            switch (wiadomosciParametry.NaglowekWiadomosci)
            {
            case "SkrzynkaOdbiorcza":
                wiadomosc = wiadomosc.Where(u => u.OdbiorcaId == wiadomosciParametry.UserId &&
                                            u.OdbiorcaUsunal == false);
                break;

            case "SkrzynkaNadawcza":
                wiadomosc = wiadomosc.Where(u => u.WyslalId == wiadomosciParametry.UserId &&
                                            u.WysylajacyUsunal == false);
                break;

            default:
                wiadomosc = wiadomosc.Where(u => u.OdbiorcaId == wiadomosciParametry.UserId &&
                                            u.OdbiorcaUsunal == false && u.JestCzytana == false);
                break;
            }

            wiadomosc = wiadomosc.OrderByDescending(d => d.DataWyslania);
            return(await ListaStron <Wiadomosci> .CreateAsync(wiadomosc,
                                                              wiadomosciParametry.NumerStrony, wiadomosciParametry.RozmiarStrony));
        }
        public async Task <IActionResult> GetWiadomosciDoUser(int userId,
                                                              [FromQuery] WiadomosciParametry wiadomosciParametry)
        {
            if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            wiadomosciParametry.UserId = userId;

            var wiadomoscFromRepo = await _repo.GetWiadomosciDoUser(wiadomosciParametry);

            var wiadomosci = _mapper.Map <IEnumerable <WiadomoscZwrocDto> >(wiadomoscFromRepo);

            Response.DodajPaginacje(wiadomoscFromRepo.DomyslnaStrona, wiadomoscFromRepo.RozmiarStrony,
                                    wiadomoscFromRepo.CaloscKont, wiadomoscFromRepo.CaloscStron);

            return(Ok(wiadomosci));
        }