public PartialFindResult <TResult> Find <TResult>(Func <ReleaseEvent, TResult> fac, SearchTextQuery textQuery, int seriesId, DateTime?afterDate, DateTime?beforeDate, int start, int maxResults, bool getTotalCount, EventSortRule sort) { return(HandleQuery(ctx => { var q = ctx.Query() .WhereHasName(textQuery) .WhereHasSeries(seriesId) .WhereDateIsBetween(afterDate, beforeDate); var entries = q .OrderBy(sort) .Skip(start) .Take(maxResults) .ToArray() .Select(fac) .ToArray(); var count = 0; if (getTotalCount) { count = q.Count(); } return new PartialFindResult <TResult>(entries, count); })); }
public PartialFindResult <ReleaseEventForApiContract> GetList( string query = "", int seriesId = 0, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, EventSortRule sort = EventSortRule.Name, ReleaseEventOptionalFields fields = ReleaseEventOptionalFields.None ) { query = !string.IsNullOrEmpty(query) ? FindHelpers.CleanTerm(query.Trim()) : string.Empty; return(repository.HandleQuery(ctx => { var q = ctx.Query() .WhereHasName(query) .WhereHasSeries(seriesId); var entries = q .OrderBy(sort) .Skip(start) .Take(maxResults) .ToArray() .Select(e => new ReleaseEventForApiContract(e, fields)) .ToArray(); var count = 0; if (getTotalCount) { count = q.Count(); } return new PartialFindResult <ReleaseEventForApiContract>(entries, count); })); }
public ReleaseEventContract[] List(EventSortRule sortRule, SortDirection sortDirection, bool includeSeries = false) { return(repository.HandleQuery(ctx => ctx .Query() .Where(e => e.Date.DateTime != null) .OrderBy(sortRule, LanguagePreference, sortDirection) .ToArray() .Select(e => new ReleaseEventContract(e, LanguagePreference, includeSeries)) .ToArray())); }
public ReleaseEventContract[] List(EventSortRule sortRule, bool includeSeries = false) { return(repository.HandleQuery(ctx => ctx .Query() .Where(e => e.Date != null) .OrderBy(sortRule) .ToArray() .Select(e => new ReleaseEventContract(e, includeSeries)) .ToArray())); }
public PartialFindResult <ReleaseEventForApiContract> GetList( string query = "", NameMatchMode nameMatchMode = NameMatchMode.Auto, int seriesId = 0, DateTime?afterDate = null, DateTime?beforeDate = null, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, EventSortRule sort = EventSortRule.Name, ReleaseEventOptionalFields fields = ReleaseEventOptionalFields.None ) { var textQuery = SearchTextQuery.Create(query, nameMatchMode); return(queries.Find(e => new ReleaseEventForApiContract(e, fields), textQuery, seriesId, afterDate, beforeDate, start, maxResults, getTotalCount, sort)); }
public PartialFindResult <ReleaseEventForApiContract> GetList( string query = "", NameMatchMode nameMatchMode = NameMatchMode.Auto, int seriesId = 0, DateTime?afterDate = null, DateTime?beforeDate = null, EventCategory category = EventCategory.Unspecified, int?userCollectionId = null, [FromQuery(Name = "tagId[]")] int[] tagId = null, bool childTags = false, [FromQuery(Name = "artistId[]")] int[] artistId = null, bool childVoicebanks = false, bool includeMembers = false, EntryStatus?status = null, int start = 0, int maxResults = DefaultMax, bool getTotalCount = false, EventSortRule sort = EventSortRule.Name, ReleaseEventOptionalFields fields = ReleaseEventOptionalFields.None, ContentLanguagePreference lang = ContentLanguagePreference.Default ) { var textQuery = SearchTextQuery.Create(query, nameMatchMode); var queryParams = new EventQueryParams { TextQuery = textQuery, SeriesId = seriesId, AfterDate = afterDate, BeforeDate = beforeDate, Category = category, UserId = userCollectionId ?? 0, ArtistIds = new EntryIdsCollection(artistId), ChildVoicebanks = childVoicebanks, IncludeMembers = includeMembers, ChildTags = childTags, TagIds = tagId, EntryStatus = status, Paging = new PagingProperties(start, maxResults, getTotalCount), SortRule = sort }; return(_queries.Find(e => new ReleaseEventForApiContract(e, lang, fields, _thumbPersister), queryParams)); }
public PartialFindResult <ReleaseEventForApiContract> GetList( string query = "", int seriesId = 0, DateTime?afterDate = null, DateTime?beforeDate = null, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, EventSortRule sort = EventSortRule.Name, ReleaseEventOptionalFields fields = ReleaseEventOptionalFields.None ) { var textQuery = SearchTextQuery.Create(query); return(repository.HandleQuery(ctx => { var q = ctx.Query() .WhereHasName(textQuery) .WhereHasSeries(seriesId) .WhereDateIsBetween(afterDate, beforeDate); var entries = q .OrderBy(sort) .Skip(start) .Take(maxResults) .ToArray() .Select(e => new ReleaseEventForApiContract(e, fields)) .ToArray(); var count = 0; if (getTotalCount) { count = q.Count(); } return new PartialFindResult <ReleaseEventForApiContract>(entries, count); })); }
/// <summary> /// Sort query. /// </summary> /// <param name="query">Query. Cannot be null.</param> /// <param name="sortRule">Sort rule.</param> /// <param name="direction">Sort direction. If null, default direction is used.</param> /// <returns>Sorted query. Cannot be null.</returns> public static IQueryable <ReleaseEvent> OrderBy(this IQueryable <ReleaseEvent> query, EventSortRule sortRule, ContentLanguagePreference languagePreference, SortDirection?direction) => sortRule switch {
public static IQueryable <ReleaseEvent> OrderBy(this IQueryable <ReleaseEvent> query, EventSortRule sortRule) { switch (sortRule) { case EventSortRule.Date: return(query.OrderByDescending(r => r.Date)); case EventSortRule.Name: return(query.OrderBy(r => r.Name)); case EventSortRule.SeriesName: return(query .OrderBy(r => r.Series.Name) .ThenBy(r => r.SeriesNumber)); } return(query); }
/// <summary> /// Sort query. /// </summary> /// <param name="query">Query. Cannot be null.</param> /// <param name="sortRule">Sort rule.</param> /// <param name="direction">Sort direction. If null, default direction is used.</param> /// <returns>Sorted query. Cannot be null.</returns> public static IQueryable <ReleaseEvent> OrderBy(this IQueryable <ReleaseEvent> query, EventSortRule sortRule, ContentLanguagePreference languagePreference, SortDirection?direction) { switch (sortRule) { case EventSortRule.Date: return(query.OrderByDate(direction)); case EventSortRule.AdditionDate: return(query.OrderBy(e => e.CreateDate, direction ?? SortDirection.Descending)); case EventSortRule.Name: return(query.OrderByName(languagePreference)); case EventSortRule.SeriesName: return(query.OrderBySeriesName(languagePreference)); case EventSortRule.VenueName: return(query.OrderByVenueName(languagePreference)); } return(query); }
// // GET: /Event/ public ActionResult Index(EventSortRule sortRule = EventSortRule.Date) { ViewBag.SortRule = sortRule; return(View(queries.List(sortRule, true))); }
public PartialFindResult<ReleaseEventForApiContract> GetList( string query = "", int seriesId = 0, int start = 0, int maxResults = defaultMax, bool getTotalCount = false, EventSortRule sort = EventSortRule.Name, ReleaseEventOptionalFields fields = ReleaseEventOptionalFields.None ) { query = !string.IsNullOrEmpty(query) ? FindHelpers.CleanTerm(query.Trim()) : string.Empty; return repository.HandleQuery(ctx => { var q = ctx.Query() .WhereHasName(query) .WhereHasSeries(seriesId); var entries = q .OrderBy(sort) .Skip(start) .Take(maxResults) .ToArray() .Select(e => new ReleaseEventForApiContract(e, fields)) .ToArray(); var count = 0; if (getTotalCount) { count = q.Count(); } return new PartialFindResult<ReleaseEventForApiContract>(entries, count); }); }
// // GET: /Event/ public ActionResult Index(EventSortRule sortRule = EventSortRule.Date) { ViewBag.SortRule = sortRule; return View(queries.List(sortRule, true)); }