예제 #1
0
        private static int LoadByGuid2(Guid guid, RockContext rockContext)
        {
            var eventCalendarService = new EventCalendarService(rockContext);

            return(eventCalendarService
                   .Queryable().AsNoTracking()
                   .Where(c => c.Guid.Equals(guid))
                   .Select(c => c.Id)
                   .FirstOrDefault());
        }
        private EventCalendar ResolveCalendarSettingOrThrow(RockContext rockContext, string calendarSettingValue)
        {
            var calendarService = new EventCalendarService(rockContext);

            EventCalendar calendar = null;

            // Verify that a calendar reference has been provided.
            if (string.IsNullOrWhiteSpace(calendarSettingValue))
            {
                throw new Exception($"A calendar reference must be specified.");
            }

            // Get by ID.
            var calendarId = calendarSettingValue.AsIntegerOrNull();

            if (calendarId != null)
            {
                calendar = calendarService.Get(calendarId.Value);
            }

            // Get by Guid.
            if (calendar == null)
            {
                var calendarGuid = calendarSettingValue.AsGuidOrNull();

                if (calendarGuid != null)
                {
                    calendar = calendarService.Get(calendarGuid.Value);
                }
            }

            // Get By Name.
            if (calendar == null)
            {
                var calendarName = calendarSettingValue.ToString();

                if (!string.IsNullOrWhiteSpace(calendarName))
                {
                    calendar = calendarService.Queryable()
                               .Where(x => x.Name != null && x.Name.Equals(calendarName, StringComparison.OrdinalIgnoreCase))
                               .FirstOrDefault();
                }
            }

            if (calendar == null)
            {
                throw new Exception($"Cannot find a calendar matching the reference \"{ calendarSettingValue }\".");
            }

            return(calendar);
        }
예제 #3
0
        private static EventCalendarCache LoadById2(int id, RockContext rockContext)
        {
            var eventCalendarService = new EventCalendarService(rockContext);
            var eventCalendarModel   = eventCalendarService
                                       .Queryable().AsNoTracking()
                                       .FirstOrDefault(c => c.Id == id);

            if (eventCalendarModel != null)
            {
                return(new EventCalendarCache(eventCalendarModel));
            }

            return(null);
        }
예제 #4
0
        public void EventItemService_GetActiveEventsByCalendar_ReturnsOnlyEventsInSpecifiedCalendar()
        {
            var rockContext     = new RockContext();
            var calendarService = new EventCalendarService(rockContext);

            var internalCalendar = calendarService.Queryable()
                                   .FirstOrDefault(x => x.Name == "Internal");

            var eventItemService = new EventItemService(rockContext);
            var internalEvents   = eventItemService.GetActiveItemsByCalendarId(internalCalendar.Id)
                                   .ToList();

            // The Event "Staff Meeting" exists in the Internal calendar.
            // It should be returned in the list of active items.
            var staffEvent = internalEvents.FirstOrDefault(x => x.Name == "Staff Meeting");

            Assert.That.IsNotNull(staffEvent, "Expected event not found in result set.");

            // The Event "Warrior Youth Event" only exists in the External calendar.
            // It should not be returned in the list of active items.
            var warriorEvent = internalEvents.FirstOrDefault(x => x.Name == "Warrior Youth Event");

            Assert.That.IsNull(warriorEvent, "Unexpected event found in result set.");
        }