public async Task Init() { if (ZanrList.Count == 0) { var zanrList = await _zanrService.Get <List <Zanr> >(null); foreach (var zanr in zanrList) { ZanrList.Add(zanr); } } PredstavaSearchRequest search = new PredstavaSearchRequest(); if (SelectedZanr != null) { search.ZanrId = SelectedZanr.ZanrID; } var list = await _predstaveService.Get <IEnumerable <Predstava> >(search); PredstavaList.Clear(); foreach (var predstava in list) { PredstavaList.Add(predstava); } }
public List <Model.Predstava> Get(PredstavaSearchRequest search) { var q = _context.Set <Database.Predstava>().AsQueryable(); if (!string.IsNullOrEmpty(search?.Naziv) && search?.ZanrId.HasValue == true) { q = q.Where(s => s.Naziv.Equals(search.Naziv) && s.ZanrId == search.ZanrId); } else { if (!string.IsNullOrEmpty(search?.Naziv)) { q = q.Where(x => x.Naziv.ToLower().StartsWith(search.Naziv) || x.Naziv.ToUpper().StartsWith(search.Naziv)); } if (search?.ZanrId.HasValue == true) { q = q.Where(s => s.Zanr.ZanrId == search.ZanrId); } if (search.TrajanjeOd.HasValue) { q = q.Where(s => s.Trajanje >= search.TrajanjeOd.Value); } if (search.TrajanjeDo.HasValue) { q = q.Where(s => s.Trajanje <= search.TrajanjeDo.Value); } if (search.Sort == 0) { q = q.OrderBy(x => x.Naziv); } else if (search.Sort == 1) { q = q.OrderByDescending(x => x.PredstavaKupac.Average(a => (double?)a.Ocjena ?? 0.0)); } } var list = q.ToList(); var list2 = _mapper.Map <List <Model.Predstava> >(list); foreach (var predstava in list2) { predstava.ProsjecnaOcjena = _context.PredstavaKupac .Where(x => x.PredstavaId == predstava.PredstavaId) .Average(x => (decimal?)x.Ocjena) ?? new decimal(0); } return(list2); }
public async Task Init() { if (ZanrList.Count == 0) { SortList.Add("Naziv"); SortList.Add("Najveća ocjena"); var zanrList = await _zanrService.Get <List <Zanr> >(null); foreach (var zanr in zanrList) { ZanrList.Add(zanr); } } PredstavaSearchRequest search = new PredstavaSearchRequest(); if (SelectedZanr != null) { search.ZanrId = SelectedZanr.ZanrID; } if (int.TryParse(TrajanjeOd, out int _TrajanjeOd)) { search.TrajanjeOd = _TrajanjeOd; } if (int.TryParse(TrajanjeDo, out int _TrajanjeDo)) { search.TrajanjeDo = _TrajanjeDo; } search.Sort = SelectedSort; var list = await _predstaveService.Get <IEnumerable <Predstava> >(search); PredstaveList.Clear(); foreach (var predstava in list) { PredstaveList.Add(predstava); } }
public List <Model.Predstava> Get([FromQuery] PredstavaSearchRequest request) { return(_service.Get(request)); }