Example #1
0
 public IActionResult GetByFilter(BesucherFilterViewModel besucherFilterViewModel)
 {
     return(Execute(() =>
     {
         return _besucherService.GetByFilterViewModel(besucherFilterViewModel);
     }));
 }
Example #2
0
        public List <Besucher> GetByFilter(BesucherFilterViewModel filter)
        {
            var query = _databaseContext.BesuchBesucher.AsQueryable();

            if (filter.IstBeendet == true)
            {
                query = query.Where(x => x.Besuch.Endzeit != null);
            }

            if (filter.IstBeendet == false)
            {
                query = query.Where(x => x.Besuch.Endzeit == null);
            }

            if (!string.IsNullOrWhiteSpace(filter.Vorname))
            {
                query = query.Where(x => x.Besucher != null && x.Besucher.Person != null && x.Besucher.Person.Vorname.ToLower().Contains(filter.Vorname.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(filter.Name))
            {
                query = query.Where(x => x.Besucher != null && x.Besucher.Person != null && x.Besucher.Person.Name.ToLower().Contains(filter.Name.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(filter.Email))
            {
                query = query.Where(x => x.Besucher != null && x.Besucher.Person != null && x.Besucher.Person.Email.ToLower().Contains(filter.Email.ToLower()));
            }

            if (filter.Startzeit.HasValue)
            {
                query = query.Where(x => x.Besuch != null && x.Besuch.Startzeit >= filter.Startzeit.Value);
            }

            if (filter.Endzeit.HasValue)
            {
                query = query.Where(x => x.Besuch != null && x.Besuch.Endzeit <= filter.Endzeit.Value);
            }

            if (filter.Skip.HasValue)
            {
                query = query.Skip(filter.Skip.Value);
            }

            if (filter.Take.HasValue)
            {
                query = query.Take(filter.Take.Value);
            }

            return(query
                   .Include(x => x.Besucher.Person)
                   .Select(x => x.Besucher)
                   .ToList());
        }
        public List <BesucherViewModel> GetByFilterViewModel(BesucherFilterViewModel besucherFilterViewModel)
        {
            Guard.IsNotNull(besucherFilterViewModel);

            using (var unit = new UnitOfWork())
            {
                var besucherRepo = unit.GetRepository <BesucherRepository>();
                var result       = besucherRepo.GetByFilter(besucherFilterViewModel);
                return(_mapper.Map <List <BesucherViewModel> >(result));
            }
        }