예제 #1
0
        protected override IConfigurable PrepareDataObject()
        {
            CommonLoggingHelper.SyncLogSession.SetBlackBoxCapacity(NewSubscription.IncreasedBlackBoxCapacity);
            AutoProvisionProgress autoProvisionProgress = delegate(LocalizedString activity, LocalizedString statusDescription)
            {
                if (base.IsVerboseOn)
                {
                    base.WriteVerbose(Strings.AutoProvisionDebug(activity, statusDescription));
                }
                ExProgressRecord record = new ExProgressRecord(0, activity, statusDescription);
                base.WriteProgress(record);
                CommonLoggingHelper.SyncLogSession.LogVerbose((TSLID)1271UL, Strings.AutoProvisionDebug(activity, statusDescription), new object[0]);
            };

            IAutoProvision[] array = this.ClientsToUse();
            if (array.Length == 0)
            {
                base.WriteDebugInfoAndError(new LocalizedException(Strings.AutoProvisionNoProtocols), ErrorCategory.InvalidArgument, null);
            }
            Dictionary <Authority, bool> connectiveAuthority = NewSubscription.CheckConnectivity(array, autoProvisionProgress);
            PimSubscriptionProxy         pimSubscriptionProxy;
            DiscoverSettingsResult       discoverSettingsResult = NewSubscription.DiscoverSettings(array, false, connectiveAuthority, autoProvisionProgress, CommonLoggingHelper.SyncLogSession, out pimSubscriptionProxy);

            if (pimSubscriptionProxy == null && discoverSettingsResult != DiscoverSettingsResult.AuthenticationError && (this.Force == true || base.ShouldContinue(Strings.InsecureConfirmation)))
            {
                CommonLoggingHelper.SyncLogSession.LogVerbose((TSLID)1272UL, "Checking for in-secure option.", new object[0]);
                NewSubscription.DiscoverSettings(array, true, connectiveAuthority, autoProvisionProgress, CommonLoggingHelper.SyncLogSession, out pimSubscriptionProxy);
            }
            if (pimSubscriptionProxy == null)
            {
                base.WriteDebugInfoAndError(new AutoProvisionFailedException(), ErrorCategory.InvalidArgument, null);
            }
            pimSubscriptionProxy.CreationType = SubscriptionCreationType.Auto;
            this.DataObject = pimSubscriptionProxy;
            autoProvisionProgress(Strings.AutoProvisionComplete, Strings.AutoProvisionCreate);
            base.WriteDebugInfo();
            return(base.PrepareDataObject());
        }
예제 #2
0
        internal static DiscoverSettingsResult DiscoverSettings(IAutoProvision[] clients, bool testOnlyInsecure, Dictionary <Authority, bool> connectiveAuthority, AutoProvisionProgress provisionProgressCallback, SyncLogSession syncLogSession, out PimSubscriptionProxy subscription)
        {
            subscription = null;
            bool flag = false;

            foreach (IAutoProvision autoProvision in clients)
            {
                DiscoverSettingsResult discoverSettingsResult = autoProvision.DiscoverSetting(syncLogSession, testOnlyInsecure, connectiveAuthority, provisionProgressCallback, out subscription);
                if (discoverSettingsResult == DiscoverSettingsResult.Succeeded)
                {
                    return(discoverSettingsResult);
                }
                if (discoverSettingsResult == DiscoverSettingsResult.AuthenticationError)
                {
                    syncLogSession.LogDebugging((TSLID)1264UL, "Found an authentication error when trying to discover settings.", new object[0]);
                    flag = true;
                }
            }
            if (flag)
            {
                return(DiscoverSettingsResult.AuthenticationError);
            }
            return(DiscoverSettingsResult.SettingsNotFound);
        }