public Contracts.Options CreateData()
 {
     return(new Contracts.Options
     {
         Id = Id,
         Name = Name,
         Inactive = !IsActive,
         EnableChangeTriggeredSynchronization = _enableChangeTriggeredSynchronization,
         OutlookFolderEntryId = _selectedFolderOrNull?.EntryId,
         OutlookFolderStoreId = _selectedFolderOrNull?.StoreId,
         OutlookFolderAccountName = FolderAccountName,
         CalenderUrl = _calenderUrl,
         UserName = _userName,
         Password = _password,
         EmailAddress = _emailAddress,
         UseAccountPassword = _useAccountPassword,
         ServerAdapterType = ServerAdapterType,
         SynchronizationMode = _synchronizationMode,
         ConflictResolution = _conflictResolution,
         SynchronizationIntervalInMinutes = _synchronizationIntervalInMinutes,
         IsChunkedSynchronizationEnabled = IsChunkedSynchronizationEnabled,
         ChunkSize = ChunkSize,
         IgnoreSynchronizationTimeRange = !_useSynchronizationTimeRange,
         UseWebDavCollectionSync = _useWebDavCollectionSync,
         DaysToSynchronizeInThePast = _daysToSynchronizeInThePast,
         DaysToSynchronizeInTheFuture = _daysToSynchronizeInTheFuture,
         CloseAfterEachRequest = _closeConnectionAfterEachRequest,
         PreemptiveAuthentication = _preemptiveAuthentication,
         ForceBasicAuthentication = _forceBasicAuthentication,
         ProxyOptions = CreateProxyOptions(),
         MappingConfiguration = MappingConfigurationModelOrNull?.GetData(),
         ProfileTypeOrNull = _profileTypeOrNull
     });
 }
        public bool Validate(StringBuilder errorMessageBuilder)
        {
            bool result = true;

            if (_selectedFolderOrNull == null)
            {
                errorMessageBuilder.AppendLine(Strings.Get($"- There is no Outlook folder selected."));
                result = false;
            }

            if (_useWebDavCollectionSync && _selectedFolderOrNull?.DefaultItemType != OlItemType.olAppointmentItem && _selectedFolderOrNull?.DefaultItemType != OlItemType.olContactItem)
            {
                errorMessageBuilder.AppendLine(Strings.Get($"- WebDav collection sync is currently just supported for appointments and contacts."));
                result = false;
            }

            if (_isGoogle)
            {
                var serverAdapterType = ServerAdapterType;
                if (serverAdapterType != ServerAdapterType.GoogleTaskApi && serverAdapterType != ServerAdapterType.GoogleContactApi)
                {
                    result &= OptionTasks.ValidateWebDavUrl(CalenderUrl, errorMessageBuilder, true);
                }

                result &= OptionTasks.ValidateEmailAddress(errorMessageBuilder, EmailAddress, false);
            }
            else
            {
                result &= OptionTasks.ValidateWebDavUrl(CalenderUrl, errorMessageBuilder, true);
                result &= OptionTasks.ValidateEmailAddress(errorMessageBuilder, EmailAddress, true);
            }
            if (!string.IsNullOrEmpty(_profileTypeOrNull) && String.Equals(_profileTypeOrNull, "Swisscom", StringComparison.OrdinalIgnoreCase) && _selectedFolderOrNull?.DefaultItemType != OlItemType.olContactItem)
            {
                result = false;
                errorMessageBuilder.AppendLine(Strings.Get($"- The Swisscom profile is currently just supported for contacts, please choose a Contacts folder"));
            }

            if (IsChunkedSynchronizationEnabled && ChunkSize < 1)
            {
                result = false;
                errorMessageBuilder.AppendLine(Strings.Get($"- The chunk size has to be 1 or greater."));
            }

            if (MappingConfigurationModelOrNull != null)
            {
                result &= MappingConfigurationModelOrNull.Validate(errorMessageBuilder);
            }

            return(result);
        }
        public bool Validate(StringBuilder errorMessageBuilder)
        {
            bool result = true;

            if (_selectedFolderOrNull == null)
            {
                errorMessageBuilder.AppendLine(Strings.Get($"- There is no Outlook folder selected."));
                result = false;
            }

            if (_useWebDavCollectionSync && _selectedFolderOrNull?.DefaultItemType != OlItemType.olAppointmentItem && _selectedFolderOrNull?.DefaultItemType != OlItemType.olContactItem)
            {
                errorMessageBuilder.AppendLine(Strings.Get($"- WebDav collection sync ist currently just supported for appointments and contacts."));
                result = false;
            }

            if (_isGoogle)
            {
                var serverAdapterType = ServerAdapterType;
                if (serverAdapterType != ServerAdapterType.GoogleTaskApi && serverAdapterType != ServerAdapterType.GoogleContactApi)
                {
                    result &= OptionTasks.ValidateWebDavUrl(CalenderUrl, errorMessageBuilder, true);
                }

                result &= OptionTasks.ValidateGoogleEmailAddress(errorMessageBuilder, EmailAddress);
            }
            else
            {
                result &= OptionTasks.ValidateWebDavUrl(CalenderUrl, errorMessageBuilder, true);
                result &= OptionTasks.ValidateEmailAddress(errorMessageBuilder, EmailAddress);
            }

            if (IsChunkedSynchronizationEnabled && ChunkSize < 1)
            {
                result = false;
                errorMessageBuilder.AppendLine(Strings.Get($"- The chunk size hast to be 1 or greater."));
            }

            if (MappingConfigurationModelOrNull != null)
            {
                result &= MappingConfigurationModelOrNull.Validate(errorMessageBuilder);
            }

            return(result);
        }
Exemplo n.º 4
0
        public bool Validate(StringBuilder errorMessageBuilder)
        {
            bool result = true;

            if (_selectedFolderOrNull == null)
            {
                errorMessageBuilder.AppendLine("- There is no Outlook Folder selected.");
                result = false;
            }

            if (_isGoogle)
            {
                var serverAdapterType = ServerAdapterType;
                if (serverAdapterType != ServerAdapterType.GoogleTaskApi && serverAdapterType != ServerAdapterType.GoogleContactApi)
                {
                    result &= OptionTasks.ValidateWebDavUrl(CalenderUrl, errorMessageBuilder, true);
                }

                result &= OptionTasks.ValidateGoogleEmailAddress(errorMessageBuilder, EmailAddress);
            }
            else
            {
                result &= OptionTasks.ValidateWebDavUrl(CalenderUrl, errorMessageBuilder, true);
                result &= OptionTasks.ValidateEmailAddress(errorMessageBuilder, EmailAddress);
            }

            if (IsChunkedSynchronizationEnabled && ChunkSize < 1)
            {
                result = false;
                errorMessageBuilder.AppendLine("- The chunk size hast to be 1 or greater.");
            }

            if (MappingConfigurationModelOrNull != null)
            {
                result &= MappingConfigurationModelOrNull.Validate(errorMessageBuilder);
            }

            return(result);
        }
 public void AddOneTimeTasks(Action <OneTimeChangeCategoryTask> add)
 {
     MappingConfigurationModelOrNull?.AddOneTimeTasks(add);
 }