Exemple #1
0
        public EventMappingConfigurationViewModel Create(EventMappingConfiguration configurationElement)
        {
            var eventMappingConfigurationViewModel = new EventMappingConfigurationViewModel(_availableCategories, _currentOptions);

            eventMappingConfigurationViewModel.SetOptions(configurationElement);
            return(eventMappingConfigurationViewModel);
        }
        public virtual EventMappingConfiguration CreateEventMappingConfiguration()
        {
            var data = new EventMappingConfiguration();

            data.MapReminder = ReminderMapping.JustUpcoming;
            data.MapSensitivityPrivateToClassConfidential = false;
            data.MapClassConfidentialToSensitivityPrivate = false;
            data.MapClassPublicToSensitivityPrivate       = false;
            data.MapAttendees                   = true;
            data.ScheduleAgentClient            = true;
            data.SendNoAppointmentNotifications = false;
            data.MapBody = true;
            data.MapRtfBodyToXAltDesc = false;
            data.MapXAltDescToRtfBody = false;
            data.CreateEventsInUTC    = false;
            data.UseIanaTz            = false;

            try
            {
                data.EventTz = NodaTime.DateTimeZoneProviders.Tzdb.GetSystemDefault()?.Id;
            }
            catch (DateTimeZoneNotFoundException)
            {
                // Default to GMT if Windows Zone can't be mapped to IANA zone.
                data.EventTz = "Etc/GMT";
            }
            data.IncludeHistoricalData           = false;
            data.UseGlobalAppointmentID          = false;
            data.IncludeEmptyEventCategoryFilter = false;
            data.InvertEventCategoryFilter       = false;
            data.CleanupDuplicateEvents          = false;
            data.MapCustomProperties             = false;
            return(data);
        }
Exemple #3
0
        /// <remarks>
        /// InitializeData has to set fields instead of properties, since properties can interfer with each other!
        /// </remarks>
        private void InitializeData(EventMappingConfiguration mappingConfiguration)
        {
            _categoryShortcutKey                          = mappingConfiguration.CategoryShortcutKey;
            _createEventsInUtc                            = mappingConfiguration.CreateEventsInUTC;
            _useIanaTz                                    = mappingConfiguration.UseIanaTz;
            _eventTz                                      = mappingConfiguration.EventTz;
            _includeHistoricalData                        = mappingConfiguration.IncludeHistoricalData;
            _useGlobalAppointmentId                       = mappingConfiguration.UseGlobalAppointmentID;
            _eventCategory                                = mappingConfiguration.EventCategory;
            _eventCategoryColor                           = mappingConfiguration.EventCategoryColor;
            _includeEmptyEventCategoryFilter              = mappingConfiguration.IncludeEmptyEventCategoryFilter;
            _invertEventCategoryFilter                    = mappingConfiguration.InvertEventCategoryFilter;
            _mapAttendees                                 = mappingConfiguration.MapAttendees;
            _mapBody                                      = mappingConfiguration.MapBody;
            _mapRtfBodyToXAltDesc                         = mappingConfiguration.MapRtfBodyToXAltDesc;
            _mapXAltDescToRtfBody                         = mappingConfiguration.MapXAltDescToRtfBody;
            _mapClassConfidentialToSensitivityPrivate     = mappingConfiguration.MapClassConfidentialToSensitivityPrivate;
            _mapClassPublicToSensitivityPrivate           = mappingConfiguration.MapClassPublicToSensitivityPrivate;
            _mapReminder                                  = mappingConfiguration.MapReminder;
            _mapSensitivityPrivateToClassConfidential     = mappingConfiguration.MapSensitivityPrivateToClassConfidential;
            _scheduleAgentClient                          = mappingConfiguration.ScheduleAgentClient;
            _sendNoAppointmentNotifications               = mappingConfiguration.SendNoAppointmentNotifications;
            _useEventCategoryColorAndMapFromCalendarColor = mappingConfiguration.UseEventCategoryColorAndMapFromCalendarColor;
            _cleanupDuplicateEvents                       = mappingConfiguration.CleanupDuplicateEvents;
            _mapCustomProperties                          = mappingConfiguration.MapCustomProperties;

            if (mappingConfiguration.UserDefinedCustomPropertyMappings != null)
            {
                Array.ForEach(mappingConfiguration.UserDefinedCustomPropertyMappings, m => Mappings.Add(new PropertyMappingModel(m)));
            }
        }
        public OutlookEventRepository(
            NameSpace mapiNameSpace,
            string folderId,
            string folderStoreId,
            IDateTimeRangeProvider dateTimeRangeProvider,
            EventMappingConfiguration configuration,
            IDaslFilterProvider daslFilterProvider)
        {
            if (mapiNameSpace == null)
            {
                throw new ArgumentNullException(nameof(mapiNameSpace));
            }
            if (dateTimeRangeProvider == null)
            {
                throw new ArgumentNullException(nameof(dateTimeRangeProvider));
            }
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            if (daslFilterProvider == null)
            {
                throw new ArgumentNullException(nameof(daslFilterProvider));
            }

            _mapiNameSpace         = mapiNameSpace;
            _folderId              = folderId;
            _folderStoreId         = folderStoreId;
            _dateTimeRangeProvider = dateTimeRangeProvider;
            _configuration         = configuration;
            _daslFilterProvider    = daslFilterProvider;
        }
Exemple #5
0
        public IConfigurationForm <EventMappingConfiguration> Create(EventMappingConfiguration configurationElement)
        {
            var form = new EventMappingConfigurationForm(_calDavDataAccessFactory);

            form.Options = configurationElement;
            return(form);
        }
        public static void Initialize(NameSpace mapiNameSpace)
        {
            s_mapiNameSpace = mapiNameSpace;
            const string testerServerEmailAddress = "*****@*****.**";

            if (mapiNameSpace == null)
            {
                throw new ArgumentNullException("mapiNameSpace");
            }

            var eventMappingConfiguration = new EventMappingConfiguration();

            _entityMapper = new EventEntityMapper(
                mapiNameSpace.CurrentUser.Address,
                new Uri("mailto:" + testerServerEmailAddress),
                mapiNameSpace.Application.TimeZones.CurrentTimeZone.ID,
                mapiNameSpace.Application.Version,
                eventMappingConfiguration);

            s_outlookFolderEntryId = ConfigurationManager.AppSettings[string.Format("{0}.OutlookFolderEntryId", Environment.MachineName)];
            s_outlookFolderStoreId = ConfigurationManager.AppSettings[string.Format("{0}.OutlookFolderStoreId", Environment.MachineName)];

            s_synchronizerFactory = new SynchronizerFactory(
                _ => @"a:\invalid path",
                NullTotalProgressFactory.Instance,
                s_mapiNameSpace,
                TimeSpan.Zero);

            s_outlookEventRepository = new OutlookEventRepository(
                s_mapiNameSpace,
                s_outlookFolderEntryId,
                s_outlookFolderStoreId,
                NullDateTimeRangeProvider.Instance,
                eventMappingConfiguration);
        }
Exemple #7
0
        public EventMappingConfigurationModel(EventMappingConfiguration data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            InitializeData(data);
        }
        public EventMappingConfigurationModel(EventMappingConfiguration data, OptionModelSessionData sessionData)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }
            _sessionData = sessionData ?? throw new ArgumentNullException(nameof(sessionData));

            InitializeData(data);
        }
Exemple #9
0
 public void SetOptions(EventMappingConfiguration mappingConfiguration)
 {
     CategoryShortcutKey       = mappingConfiguration.CategoryShortcutKey;
     CreateEventsInUtc         = mappingConfiguration.CreateEventsInUTC;
     EventCategory             = mappingConfiguration.EventCategory;
     EventCategoryColor        = mappingConfiguration.EventCategoryColor;
     InvertEventCategoryFilter = mappingConfiguration.InvertEventCategoryFilter;
     MapAttendees = mappingConfiguration.MapAttendees;
     MapBody      = mappingConfiguration.MapBody;
     MapClassConfidentialToSensitivityPrivate = mappingConfiguration.MapClassConfidentialToSensitivityPrivate;
     MapReminder = mappingConfiguration.MapReminder;
     MapSensitivityPrivateToClassConfidential = mappingConfiguration.MapSensitivityPrivateToClassConfidential;
     ScheduleAgentClient            = mappingConfiguration.ScheduleAgentClient;
     SendNoAppointmentNotifications = mappingConfiguration.SendNoAppointmentNotifications;
     UseEventCategoryColorAndMapFromCalendarColor = mappingConfiguration.UseEventCategoryColorAndMapFromCalendarColor;
 }
Exemple #10
0
        public OutlookEventRepository(
            IOutlookSession session,
            string folderId,
            string folderStoreId,
            IDateTimeRangeProvider dateTimeRangeProvider,
            EventMappingConfiguration configuration,
            IDaslFilterProvider daslFilterProvider,
            IQueryOutlookAppointmentItemFolderStrategy queryFolderStrategy,
            IComWrapperFactory comWrapperFactory,
            bool useDefaultFolderItemType)
        {
            if (session == null)
            {
                throw new ArgumentNullException(nameof(session));
            }
            if (dateTimeRangeProvider == null)
            {
                throw new ArgumentNullException(nameof(dateTimeRangeProvider));
            }
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }
            if (daslFilterProvider == null)
            {
                throw new ArgumentNullException(nameof(daslFilterProvider));
            }
            if (queryFolderStrategy == null)
            {
                throw new ArgumentNullException(nameof(queryFolderStrategy));
            }
            if (comWrapperFactory == null)
            {
                throw new ArgumentNullException(nameof(comWrapperFactory));
            }

            _session                  = session;
            _folderId                 = folderId;
            _folderStoreId            = folderStoreId;
            _dateTimeRangeProvider    = dateTimeRangeProvider;
            _configuration            = configuration;
            _daslFilterProvider       = daslFilterProvider;
            _queryFolderStrategy      = queryFolderStrategy;
            _comWrapperFactory        = comWrapperFactory;
            _useDefaultFolderItemType = useDefaultFolderItemType;
        }
Exemple #11
0
        public static void Initialize(NameSpace mapiNameSpace)
        {
            s_mapiNameSpace = mapiNameSpace;
            const string testerServerEmailAddress = "*****@*****.**";

            if (mapiNameSpace == null)
            {
                throw new ArgumentNullException("mapiNameSpace");
            }

            var globalTimeZoneCache = new GlobalTimeZoneCache();

            var eventMappingConfiguration = new EventMappingConfiguration();

            s_entityMapper = new EventEntityMapper(
                mapiNameSpace.CurrentUser.Address,
                new Uri("mailto:" + testerServerEmailAddress),
                mapiNameSpace.Application.TimeZones.CurrentTimeZone.ID,
                mapiNameSpace.Application.Version,
                new TimeZoneCache(null, false, globalTimeZoneCache),
                eventMappingConfiguration,
                null);

            s_outlookFolderEntryId = ConfigurationManager.AppSettings[string.Format("{0}.OutlookFolderEntryId", Environment.MachineName)];
            s_outlookFolderStoreId = ConfigurationManager.AppSettings[string.Format("{0}.OutlookFolderStoreId", Environment.MachineName)];

            var daslFilterProvider = new DaslFilterProvider(false);

            s_synchronizerFactory = new SynchronizerFactory(
                _ => @"a:\invalid path",
                NullTotalProgressFactory.Instance,
                s_mapiNameSpace,
                daslFilterProvider,
                new OutlookAccountPasswordProvider(mapiNameSpace.CurrentProfileName, mapiNameSpace.Application.Version),
                globalTimeZoneCache,
                QueryOutlookFolderByRequestingItemStrategy.Instance);

            s_outlookEventRepository = new OutlookEventRepository(
                s_mapiNameSpace,
                s_outlookFolderEntryId,
                s_outlookFolderStoreId,
                NullDateTimeRangeProvider.Instance,
                eventMappingConfiguration,
                daslFilterProvider,
                QueryOutlookFolderByRequestingItemStrategy.Instance);
        }
        /// <remarks>
        /// InitializeData has to set fields instead of properties, since properties can interfer with each other!
        /// </remarks>
        private void InitializeData(EventMappingConfiguration mappingConfiguration)
        {
            _createEventsInUtc                        = mappingConfiguration.CreateEventsInUTC;
            _useIanaTz                                = mappingConfiguration.UseIanaTz;
            _eventTz                                  = mappingConfiguration.EventTz;
            _includeHistoricalData                    = mappingConfiguration.IncludeHistoricalData;
            _useGlobalAppointmentId                   = mappingConfiguration.UseGlobalAppointmentID;
            _eventCategory                            = mappingConfiguration.EventCategory;
            _includeEmptyEventCategoryFilter          = mappingConfiguration.IncludeEmptyEventCategoryFilter;
            _invertEventCategoryFilter                = mappingConfiguration.InvertEventCategoryFilter;
            _mapAttendees                             = mappingConfiguration.MapAttendees;
            _mapBody                                  = mappingConfiguration.MapBody;
            _mapRtfBodyToXAltDesc                     = mappingConfiguration.MapRtfBodyToXAltDesc;
            _mapXAltDescToRtfBody                     = mappingConfiguration.MapXAltDescToRtfBody;
            _mapClassConfidentialToSensitivityPrivate = mappingConfiguration.MapClassConfidentialToSensitivityPrivate;
            _mapClassPublicToSensitivityPrivate       = mappingConfiguration.MapClassPublicToSensitivityPrivate;
            _mapReminder                              = mappingConfiguration.MapReminder;
            _mapSensitivityPrivateToClassConfidential = mappingConfiguration.MapSensitivityPrivateToClassConfidential;
            _mapSensitivityPublicToDefault            = mappingConfiguration.MapSensitivityPublicToDefault;
            _scheduleAgentClient                      = mappingConfiguration.ScheduleAgentClient;
            _sendNoAppointmentNotifications           = mappingConfiguration.SendNoAppointmentNotifications;
            _organizerAsDelegate                      = mappingConfiguration.OrganizerAsDelegate;
            _cleanupDuplicateEvents                   = mappingConfiguration.CleanupDuplicateEvents;
            _mapEventColorToCategory                  = mappingConfiguration.MapEventColorToCategory;
            _mapCustomProperties                      = mappingConfiguration.MapCustomProperties;
            _isCategoryFilterSticky                   = mappingConfiguration.IsCategoryFilterSticky;
            _eventColorToCategoryMappings             = mappingConfiguration.EventColorToCategoryMappings;

            if (mappingConfiguration.UserDefinedCustomPropertyMappings != null)
            {
                Array.ForEach(mappingConfiguration.UserDefinedCustomPropertyMappings, m => Mappings.Add(new PropertyMappingModel(m)));
            }

            if (!string.IsNullOrEmpty(_eventCategory))
            {
                if (_sessionData.CategoriesById.TryGetValue(_eventCategory, out var category))
                {
                    _oneTimeSetCategoryShortcutKey = category.ShortcutKey;
                    _oneTimeSetEventCategoryColor  = category.Color;
                }
            }
        }
Exemple #13
0
 public void SetOptions(EventMappingConfiguration mappingConfiguration)
 {
     CategoryShortcutKey       = mappingConfiguration.CategoryShortcutKey;
     CreateEventsInUtc         = mappingConfiguration.CreateEventsInUTC;
     UseIanaTz                 = mappingConfiguration.UseIanaTz;
     EventTz                   = mappingConfiguration.EventTz;
     IncludeHistoricalData     = mappingConfiguration.IncludeHistoricalData;
     UseGlobalAppointmendID    = mappingConfiguration.UseGlobalAppointmentID;
     EventCategory             = mappingConfiguration.EventCategory;
     EventCategoryColor        = mappingConfiguration.EventCategoryColor;
     InvertEventCategoryFilter = mappingConfiguration.InvertEventCategoryFilter;
     MapAttendees              = mappingConfiguration.MapAttendees;
     MapBody                   = mappingConfiguration.MapBody;
     MapClassConfidentialToSensitivityPrivate = mappingConfiguration.MapClassConfidentialToSensitivityPrivate;
     MapClassPublicToSensitivityPrivate       = mappingConfiguration.MapClassPublicToSensitivityPrivate;
     MapReminder = mappingConfiguration.MapReminder;
     MapSensitivityPrivateToClassConfidential = mappingConfiguration.MapSensitivityPrivateToClassConfidential;
     ScheduleAgentClient            = mappingConfiguration.ScheduleAgentClient;
     SendNoAppointmentNotifications = mappingConfiguration.SendNoAppointmentNotifications;
     UseEventCategoryColorAndMapFromCalendarColor = mappingConfiguration.UseEventCategoryColorAndMapFromCalendarColor;
     CleanupDuplicateEvents = mappingConfiguration.CleanupDuplicateEvents;
 }
Exemple #14
0
 public void FillOptions(EventMappingConfiguration mappingConfiguration)
 {
     mappingConfiguration.CategoryShortcutKey       = _categoryShortcutKey;
     mappingConfiguration.CreateEventsInUTC         = _createEventsInUtc;
     mappingConfiguration.UseIanaTz                 = _useIanaTz;
     mappingConfiguration.EventTz                   = _eventTz;
     mappingConfiguration.IncludeHistoricalData     = _includeHistoricalData;
     mappingConfiguration.UseGlobalAppointmentID    = _useGlobalAppointmentID;
     mappingConfiguration.EventCategory             = _eventCategory;
     mappingConfiguration.EventCategoryColor        = _eventCategoryColor;
     mappingConfiguration.InvertEventCategoryFilter = _invertEventCategoryFilter;
     mappingConfiguration.MapAttendees              = _mapAttendees;
     mappingConfiguration.MapBody                   = _mapBody;
     mappingConfiguration.MapClassConfidentialToSensitivityPrivate = _mapClassConfidentialToSensitivityPrivate;
     mappingConfiguration.MapReminder = _mapReminder;
     mappingConfiguration.MapSensitivityPrivateToClassConfidential = _mapSensitivityPrivateToClassConfidential;
     mappingConfiguration.MapClassPublicToSensitivityPrivate       = _mapClassPublicToSensitivityPrivate;
     mappingConfiguration.ScheduleAgentClient            = _scheduleAgentClient;
     mappingConfiguration.SendNoAppointmentNotifications = _sendNoAppointmentNotifications;
     mappingConfiguration.UseEventCategoryColorAndMapFromCalendarColor = _useEventCategoryColorAndMapFromCalendarColor;
     mappingConfiguration.CleanupDuplicateEvents = _cleanupDuplicateEvents;
 }
 public MappingConfigurationModel Visit(EventMappingConfiguration configuration)
 {
     return(new EventMappingConfigurationModel(configuration, _sessionData));
 }