public async Task <IEnumerable <Client> > GetClientsAsync(ClientsResourceParameters clientsResourceParameters)
        {
            if (clientsResourceParameters == null)
            {
                throw new ArgumentNullException(nameof(clientsResourceParameters));
            }

            if (clientsResourceParameters.Sex == null &&
                string.IsNullOrWhiteSpace(clientsResourceParameters.SearchQuery))
            {
                return(await GetClientsAsync());
            }

            var collection = _context.Clients.Include(c => c.Address) as IQueryable <Client>;

            if (!(clientsResourceParameters.Sex == null))
            {
                var sex = clientsResourceParameters.Sex;
                collection = collection.Where(c => c.Sex == sex);
            }

            if (!string.IsNullOrWhiteSpace(clientsResourceParameters.SearchQuery))
            {
                var searchQuery = clientsResourceParameters.SearchQuery.Trim();
                collection = collection.Where(c => c.FirstName.Contains(searchQuery) ||
                                              c.LastName.Contains(searchQuery) ||
                                              c.LastName.Contains(searchQuery) ||
                                              c.PhoneNumber.Contains(searchQuery) ||
                                              c.Email.Contains(searchQuery));
            }

            return(await collection.ToListAsync());
        }
        public IEnumerable <Client> GetClients(ClientsResourceParameters clientsResourceParameters)
        {
            var collection = _context.Clients as IQueryable <Client>;

            if (!string.IsNullOrWhiteSpace(clientsResourceParameters.SearchQuery))
            {
                var searchQuery = clientsResourceParameters.SearchQuery.Trim();
                collection = collection.Where(c => c.FirstName.Contains(searchQuery) || c.LastName.Contains(searchQuery));
            }

            return(collection
                   .OrderBy(c => c.LastName)
                   .OrderBy(c => c.FirstName)
                   .ToList());
        }
Beispiel #3
0
        private IQueryable <Client> CreateFilterSearchQuery(ClientsResourceParameters clientsResourceParameters)
        {
            var query = GetContext().Clients as IQueryable <Client>;

            if (clientsResourceParameters.HasAppointmentToday.HasValue)
            {
                query = query.Where(c => c.Appointments.Any(a => a.Start.Date == DateTime.Today));
            }

            if (!string.IsNullOrWhiteSpace(clientsResourceParameters.SearchQuery))
            {
                var searchQuery = clientsResourceParameters.SearchQuery;
                query = query.Where(c => c.FirstName.Contains(searchQuery) || c.LastName.Contains(searchQuery));
            }

            return(query.Include(q => q.Appointments));
        }
Beispiel #4
0
        public async Task <ActionResult <IEnumerable> > GetClients([FromQuery] ClientsResourceParameters clientsResourceParameters)
        {
            try
            {
                var clients = await _clientsRepository.GetClientsAsync(clientsResourceParameters);

                if (clients != null)
                {
                    return(Ok(_mapper.Map <IEnumerable <ClientDTO> >(clients)));
                }
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure"));
            }

            return(NotFound());
        }
Beispiel #5
0
 public async Task <IEnumerable <Client> > Get(ClientsResourceParameters clientsResourceParameters)
 => clientsResourceParameters.HasAppointmentToday.HasValue || !string.IsNullOrWhiteSpace(clientsResourceParameters.SearchQuery)
         ? await Get(CreateFilterSearchQuery(clientsResourceParameters))
         : await Get().Include(c => c.Appointments).ToListAsync();
Beispiel #6
0
        public async Task <ActionResult <IEnumerable <ClientDto> > > GetClients([FromQuery] ClientsResourceParameters clientsResourceParameters)
        {
            var clients = await clientService.GetClients(clientsResourceParameters);

            return(Ok(mapper.Map <IEnumerable <ClientDto> >(clients)));
        }
 public async Task <IEnumerable <Client> > GetClients(ClientsResourceParameters clientsResourceParameters)
 => await repository.Get(clientsResourceParameters);
Beispiel #8
0
        public ActionResult <IEnumerable <ClientDto> > GetClients([FromQuery] ClientsResourceParameters clientsResourceParameters)
        {
            var clientsFromRepo = _carRentalRepository.GetClients(clientsResourceParameters);

            return(Ok(_mapper.Map <IEnumerable <ClientDto> >(clientsFromRepo)));
        }