public EventInfoFilter ToEventInfoFilter()
        {
            var filter = new EventInfoFilter();

            if (CollectionId.HasValue)
            {
                filter.CollectionIds = new[] { CollectionId.Value };
            }
            return(filter);
        }
Exemple #2
0
        public EventInfoFilter ToEventInfoFilter()
        {
            var filter = new EventInfoFilter
            {
                TypeOneOf    = Type.HasValue ? new[] { Type.Value } : null,
                StatusNoneOf = new[]
                {
                    EventInfo.EventInfoStatus.Draft
                },
                OrganizationId = OrganizationId,
                AccessibleOnly = false
            };

            if (!Start.HasValue && !End.HasValue)
            {
                return(EventInfoFilter.UpcomingEvents(filter));
            }

            switch (Period)
            {
            case PeriodMatchingKind.Match:
                filter.StartDate = Start;
                filter.EndDate   = End;
                break;

            case PeriodMatchingKind.Intersect:
                if (Start.HasValue)
                {
                    filter.StartDateAfter       = LocalDate.MinIsoValue; // to ensure event start date is set
                    filter.EndDateIsNullOrAfter = Start;
                }
                if (End.HasValue)
                {
                    filter.StartDateBefore = End;
                }
                break;

            case PeriodMatchingKind.Contain:
                if (Start.HasValue)
                {
                    filter.StartDateAfter       = Start;
                    filter.EndDateIsNullOrAfter = Start;
                }
                if (End.HasValue)
                {
                    filter.StartDateBefore       = End;
                    filter.EndDateIsNullOrBefore = End;
                }
                break;
            }

            return(filter);
        }