public async Task<List<Play>> SearchPlays(PlaysSearchingCriteria criteria, int pageNr, int pageAmount) { using (var context = new AF_Context()) { try { var skip = pageAmount * (pageNr - 1); var query = (from p in context.Plays select p); if (criteria.FestivalIdFilter != null) query = query.Where(p => p.FestivalId==criteria.FestivalIdFilter); if (!String.IsNullOrEmpty(criteria.Author)) query = query.Where(p => p.Author.Contains(criteria.Author)); if (!String.IsNullOrEmpty(criteria.Title)) query = query.Where(p => p.Title.Contains(criteria.Title)); if (!String.IsNullOrEmpty(criteria.Motto)) query = query.Where(p => p.Motto.Contains(criteria.Motto)); return await (query.OrderBy(p => p.FestivalId) .ThenBy(p => p.Day) .ThenBy(p => p.Order) .Skip(skip) .Take(pageAmount) .ToListAsync()); } catch (Exception ex) { throw ex; } return null; } }
public MainViewModel() { PlaysCriteria = new PlaysSearchingCriteria(); PeopleCriteria = new PeopleSearchingCriteria(); AwardsCriteria = new AwardsSearchingCriteria(); }
public async Task<List<Play>> SearchPlays(PlaysSearchingCriteria criteria, int pageNr, int pageAmount) { return await DataAccess.SearchPlays(criteria, pageNr, pageAmount); }