Exemple #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));
        }
Exemple #2
0
        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));
        }