Example #1
0
 public IActionResult GetByFilter(BesuchFilterViewModel besuchFilterViewModel)
 {
     return(Execute(() =>
     {
         return _besuchService.GetByFilterViewModel(besuchFilterViewModel);
     }));
 }
        public List <BesuchViewModel> GetByFilterViewModel(BesuchFilterViewModel filterViewModel)
        {
            Guard.IsNotNull(filterViewModel);

            using (var unit = new UnitOfWork())
            {
                var besuchRepo = unit.GetRepository <BesuchRepository>();
                var result     = besuchRepo.GetByFilter(filterViewModel);
                return(GetBesuchViewModelsFromBesuche(unit, result));
            }
        }
Example #3
0
        public List <Besuch> GetByFilter(BesuchFilterViewModel filter)
        {
            var query = _databaseContext.BesuchBesucher.AsQueryable();

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

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

            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.BesucherId.HasValue)
            {
                query = query.Where(x => x.BesucherId == filter.BesucherId);
            }

            if (filter.Raeume?.Count > 0)
            {
                query = query.Where(x => x.Besuch != null && x.Besuch.BesuchRaeume.Any(y => filter.Raeume.Contains(y.Id)));
            }

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

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

            return(query
                   .Select(x => x.Besuch)
                   .ToList());
        }