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)); } }
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()); }