Esempio n. 1
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));
        }
Esempio n. 2
0
        public async Task <IActionResult> GetUsers([FromQuery] UserParametry userParametry)
        {
            var dowolnyUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var userFromRepo = await _repo.GetUser(dowolnyUserId);

            userParametry.UserId = dowolnyUserId;

            if (string.IsNullOrEmpty(userParametry.Plec))
            {
                userParametry.Plec = userFromRepo.Plec == "mezczyzna" ? "kobieta" : "mezczyzna";
            }

            var users = await _repo.GetUsers(userParametry);

            var usersToReturn = _mapper.Map <IEnumerable <UserForListDto> >(users);

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

            return(Ok(usersToReturn));
        }