/// <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); }
public CalendarReader(ICalendarConfiguration calendarConfiguration) { _calendarConfiguration = calendarConfiguration; }