У меня есть вкладка «Сегодня», «Завтра», «Скоро», «Все события» (и не только).
У каждой вкладки есть критерий (рейтинг, имя, дата события), период (сегодня,день, неделя, завтра, две недели) и порядок (по возрастанию или по убыванию).
И я хочу получать данные в зависимости от вкладки.Существует следующий метод:
private List<IEvent> GetEventList(int tab)
{
var posterEvent = PosterEventRepository.GetById(tab);
var criteria = Enum.Parse(typeof (PosterEventEnum.CriteriaEvent), posterEvent.Criteria);
var period = Enum.Parse(typeof(PosterEventEnum.CriteriaEvent), posterEvent.Period);
var order = Enum.Parse(typeof(PosterEventEnum.CriteriaEvent), posterEvent.Order);
}
IEvent
интерфейс, который реализуется классами: Film
, Sport
и т. Д.
Существует также хранилище для каждого объекта: FilmRepository
, SportRepository
и так далее.
Как лучше всего получить данные из всех репозиториев по определенным критериям, периоду, порядку?
Неохотно писать следующим образом:
switch(criteria)
{
case "Today":
resultFilm = FilmRepository.FilmRepository.GetFilmsForToday();
resultSport = SportRepository.GetSportsForToday();
...
//then combine and sorting by rating
}
Спасибо.