Esempio n. 1
0
        public async Task <IActionResult> GetPersons([FromQuery] PersonParams personParams)
        {
            var persons = await _repository.GetPersons(personParams);

            var personsToReturn = _mapper.Map <IEnumerable <PersonForListDto> >(persons);

            Response.AddPagination(persons.CurrentPage, persons.PageSize, persons.TotalCount, persons.TotalPages);
            return(Ok(personsToReturn));
        }
Esempio n. 2
0
        public async Task <PagedList <Person> > GetPersons(PersonParams personParams)
        {
            var persons = _context.People.Where(p => p.CustomerId != null).AsQueryable();

            if (!string.IsNullOrEmpty(personParams.Column))
            {
                if (personParams.Column == "firstName" && !string.IsNullOrEmpty(personParams.Sorting))
                {
                    if (personParams.Sorting == "ascending")
                    {
                        persons = persons.OrderBy(p => p.FirstName);
                    }
                    else
                    {
                        persons = persons.OrderByDescending(p => p.FirstName);
                    }
                }

                if (personParams.Column == "lastName" && !string.IsNullOrEmpty(personParams.Sorting))
                {
                    if (personParams.Sorting == "ascending")
                    {
                        persons = persons.OrderBy(p => p.LastName);
                    }
                    else
                    {
                        persons = persons.OrderByDescending(p => p.LastName);
                    }
                }

                if (personParams.Column == "email" && !string.IsNullOrEmpty(personParams.Sorting))
                {
                    if (personParams.Sorting == "ascending")
                    {
                        persons = persons.OrderBy(p => p.Email);
                    }
                    else
                    {
                        persons = persons.OrderByDescending(p => p.Email);
                    }
                }
            }

            return(await PagedList <Person> .CreateAsync(persons, personParams.PageNumber, personParams.PageSize));
        }