/// <summary>
        /// Helper method to create an ExchangeCalendarFactory
        /// </summary>
        /// <param name="calendarConfiguration"></param>
        /// <returns></returns>
        private ICalendarFactory GetExchangeCalendarFactory(ICalendarConfiguration calendarConfiguration)
        {
            var exchangeCalendarConfiguration = calendarConfiguration as ExchangeCalendarConfiguration;
            if (exchangeCalendarConfiguration == null)
            {
                throw new InvalidDataException("Unable to cast calendar config to Exchange calendar format.");
            }

            return ExchangeCalendarFactory.CreateFromCalendarConfiguration(exchangeCalendarConfiguration);
        }
 /// <summary>
 /// Helper method to get a calendar factory, consider splitting this out into yet another factory class.
 /// </summary>
 /// <param name="calendarConfiguration"></param>
 /// <param name="serviceConfiguration"></param>
 /// <returns></returns>
 private ICalendarFactory GetCalendarFactory(ICalendarConfiguration calendarConfiguration, IServiceConfiguration serviceConfiguration)
 {
     switch (calendarConfiguration.CalendarType)
     {
         case CalendarType.Google:
             return GetGoogleCalendarFactory(calendarConfiguration, serviceConfiguration);
         case CalendarType.Exchange:
             return GetExchangeCalendarFactory(calendarConfiguration);
         default:
             throw new InvalidDataException("Unknown calendar type");
     }
 }
        /// <summary>
        /// Helper method to create a GoogleCalendarFactory
        /// </summary>
        /// <param name="calendarConfiguration"></param>
        /// <param name="serviceConfiguration"></param>
        /// <returns></returns>
        private ICalendarFactory GetGoogleCalendarFactory(ICalendarConfiguration calendarConfiguration, IServiceConfiguration serviceConfiguration)
        {
            var googleCalendarConfiguration = calendarConfiguration as GoogleCalendarConfiguration;
            if (googleCalendarConfiguration == null)
            {
                throw new InvalidDataException("Unable to cast calendar config to Google calendar format.");
            }

            var googleServiceConfiguration = serviceConfiguration as GoogleServiceConfiguration;
            if (googleServiceConfiguration == null)
            {
                throw new InvalidDataException("Unable to cast service config to Google service format.");
            }

            return new GoogleCalendarFactory(googleCalendarConfiguration, googleServiceConfiguration);
        }
Beispiel #4
0
 public CalendarReader(ICalendarConfiguration calendarConfiguration)
 {
     _calendarConfiguration = calendarConfiguration;
 }