示例#1
0
        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);
            }));
        }
示例#2
0
        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);
            }));
        }
示例#3
0
 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()));
 }
示例#4
0
 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));
        }
示例#6
0
        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);
            }));
        }
示例#8
0
 /// <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);
        }
示例#10
0
        /// <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);
        }
示例#11
0
        //
        // 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);

            });
        }
示例#13
0
        //
        // GET: /Event/
        public ActionResult Index(EventSortRule sortRule = EventSortRule.Date)
        {
            ViewBag.SortRule = sortRule;

            return View(queries.List(sortRule, true));
        }