public async Task <List <Event> > GetRangeInOneCity(int offset, int limit, string cityName, string orderByAttribute, string order = "asc") { City city = await cityService.GetByUniqueIdentifiers(new string[] { "Name" }, new City() { Name = cityName }); Event tmp = new Event() { IdCity = city.IdCity }; DbCommand <Event> selectCommand = new SelectWithRangeAndFilterCommand <Event>(offset, limit, "Name", new string[] { "IdCity" }, tmp, order); return(await ServiceHelper <Event> .ExecuteSelectCommand(selectCommand)); }
public async Task <List <Event> > GetRangeInOneCityWithFilter(int offset, int limit, string cityName, EventFilter filter, int?idCategory = null, string orderByAttribute = null, string order = "asc") { City city = await cityService.GetByUniqueIdentifiers(new string[] { "Name" }, new City() { Name = cityName }); Event tmp = new Event() { IdCity = city.IdCity, }; if (filter == EventFilter.CATEGORY) { if (idCategory.HasValue) { tmp.IdCategory = idCategory.Value; } DbCommand <Event> selectCommand = new SelectWithRangeAndFilterCommand <Event>(offset, limit, orderByAttribute ?? "Name", new string[] { "IdCity", "IdCategory" }, tmp, order); return(await ServiceHelper <Event> .ExecuteSelectCommand(selectCommand)); } else { DbCommand <Event> selectCommand = new SelectWithAttributeValuesCommand <Event>(new string[] { "IdCity" }, orderByAttribute ?? "Name", order); List <Event> events = await ServiceHelper <Event> .ExecuteSelectCommand(selectCommand, tmp); if (filter == EventFilter.PRESENT) { events = events.Where(x => x.ScheduledOn.Date == DateTime.Now.Date).ToList(); } else if (filter == EventFilter.FUTURE) { events = events.Where(x => x.ScheduledOn > DateTime.Now).ToList(); } return(events.Skip(offset).Take(limit).ToList());; } }