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 <ListaStron <User> > GetUsers(UserParametry userParametry) { var users = _context.Users.Include(p => p.Zdjecia) .OrderByDescending(u => u.OstatnioAktywny).AsQueryable(); users = users.Where(u => u.Id != userParametry.UserId); users = users.Where(u => u.Plec == userParametry.Plec); if (userParametry.Lubisz) { var userLajki = await GetUserPolubienia(userParametry.UserId, userParametry.Lubisz); users = users.Where(u => userLajki.Contains(u.Id)); } if (userParametry.Lubic) { var userLajkii = await GetUserPolubienia(userParametry.UserId, userParametry.Lubisz); users = users.Where(u => userLajkii.Contains(u.Id)); } if (userParametry.MinWiek != 18 || userParametry.MaxWiek != 99) { var minDob = DateTime.Today.AddYears(-userParametry.MaxWiek - 1); var maxDob = DateTime.Today.AddYears(-userParametry.MinWiek); users = users.Where(u => u.Urodziny >= minDob && u.Urodziny <= maxDob); } if (!string.IsNullOrEmpty(userParametry.OstatnioByl)) { switch (userParametry.OstatnioByl) { case "utworzony": users = users.OrderByDescending(u => u.Utworzony); break; default: users = users.OrderByDescending(u => u.OstatnioAktywny); break; } } return(await ListaStron <User> .CreateAsync(users, userParametry.NumerStrony, userParametry.RozmiarStrony)); }