コード例 #1
0
 // Token: 0x0600115B RID: 4443 RVA: 0x00042A0C File Offset: 0x00040C0C
 protected override void InternalDispose()
 {
     InstantMessageProvider.DisposeProvider();
     BrokerGateway.Shutdown();
     ClientWatsonParametersFactory.Shutdown();
     SettingOverrideSync.Instance.Stop();
     Global.EwsClientMailboxSessionCloningHandler = null;
 }
コード例 #2
0
        // Token: 0x0600188D RID: 6285 RVA: 0x00054588 File Offset: 0x00052788
        protected override InstantMessageOperationError ExecuteInstantMessagingCommand()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider != null)
            {
                return((InstantMessageOperationError)provider.ParticipateInConversation(this.sessionId));
            }
            return(InstantMessageOperationError.NotSignedIn);
        }
コード例 #3
0
        // Token: 0x06001BE8 RID: 7144 RVA: 0x0006C58C File Offset: 0x0006A78C
        protected override int InternalExecute()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider != null)
            {
                provider.RemoveSubscription(this.sipUri);
                return(0);
            }
            return(-11);
        }
コード例 #4
0
        protected override bool InternalExecute()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider != null)
            {
                provider.NotifyTyping(this.sessionId, this.typingCancelled);
                return(true);
            }
            return(false);
        }
コード例 #5
0
        // Token: 0x06001ABC RID: 6844 RVA: 0x00064F2C File Offset: 0x0006312C
        protected override int InternalExecute()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider != null)
            {
                provider.QueryPresence(this.sipUris);
                return(0);
            }
            return(-11);
        }
コード例 #6
0
        protected override bool InternalExecute()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider != null)
            {
                provider.EndChatSession(this.sessionId, true);
                return(true);
            }
            return(false);
        }
コード例 #7
0
        protected override InstantMessageOperationError ExecuteInstantMessagingCommand()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider == null)
            {
                return(InstantMessageOperationError.NotSignedIn);
            }
            if (this.chatMessage.ChatSessionId > 0)
            {
                return((InstantMessageOperationError)provider.SendChatMessage(this.chatMessage));
            }
            return((InstantMessageOperationError)provider.SendNewChatMessage(this.chatMessage));
        }
コード例 #8
0
        public void SignOut()
        {
            ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageManager.SignOut.");
            InstantMessageProvider instantMessageProvider = Interlocked.Exchange <InstantMessageProvider>(ref this.provider, null);

            if (instantMessageProvider != null)
            {
                if (this.notifier != null)
                {
                    InstantMessagePayloadUtilities.GenerateUnavailablePayload(this.notifier, null, "Signed out manually.", InstantMessageServiceError.ClientSignOut, false);
                }
                instantMessageProvider.Dispose();
            }
        }
コード例 #9
0
        public void TerminateProvider(string reason)
        {
            ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageManager.TerminateProvider.");
            InstantMessageProvider instantMessageProvider = Interlocked.Exchange <InstantMessageProvider>(ref this.provider, null);

            if (instantMessageProvider != null)
            {
                if (this.notifier != null)
                {
                    InstantMessagePayloadUtilities.GenerateUnavailablePayload(this.notifier, null, "Disconnected from IM by server due to timeout: " + reason, InstantMessageServiceError.ServerTimeout, false);
                }
                instantMessageProvider.Dispose();
            }
        }
コード例 #10
0
        // Token: 0x0600196A RID: 6506 RVA: 0x00058B54 File Offset: 0x00056D54
        protected override int InternalExecute()
        {
            InstantMessageProvider provider = base.Provider;

            if (provider == null)
            {
                return(-11);
            }
            if (this.presenceSetting != null)
            {
                return(provider.PublishSelfPresence(this.presenceSetting.Value));
            }
            provider.PublishResetStatus();
            return(0);
        }
コード例 #11
0
        // Token: 0x06001B1C RID: 6940 RVA: 0x00066D3C File Offset: 0x00064F3C
        private static InstantMessageOperationError InitializeProvider()
        {
            Stopwatch stopwatch = Stopwatch.StartNew();
            InstantMessageOperationError result;

            try
            {
                result = InstantMessageProvider.Initialize();
            }
            finally
            {
                stopwatch.Stop();
                OwaApplication.GetRequestDetailsLogger.Set(InstantMessageSignIn.LogMetadata.InitializeProvider, stopwatch.ElapsedMilliseconds);
            }
            return(result);
        }
コード例 #12
0
        public static InstantMessageOperationError Initialize()
        {
            if (InstantMessageProvider.isInitialized)
            {
                return(InstantMessageOperationError.Success);
            }
            InstantMessageOperationError result;

            try
            {
                if (!Monitor.TryEnter(InstantMessageProvider.initializationLock))
                {
                    result = InstantMessageOperationError.InitializationInProgress;
                }
                else if (InstantMessageProvider.IsInitialized)
                {
                    result = InstantMessageOperationError.Success;
                }
                else
                {
                    Stopwatch stopwatch = Stopwatch.StartNew();
                    InstantMessagingConfiguration instantMessagingConfiguration = null;
                    try
                    {
                        bool appSetting = BaseApplication.GetAppSetting <bool>("EnableIMForOwaPremium", false);
                        if (appSetting)
                        {
                            ExTraceGlobals.InstantMessagingTracer.TraceDebug(0L, "Globals.Initialize: OWA2 Instant Messaging integration is disabled by web.config.");
                            return(InstantMessageOperationError.NotEnabled);
                        }
                        if (!VdirConfiguration.Instance.InstantMessagingEnabled)
                        {
                            return(InstantMessageOperationError.NotEnabled);
                        }
                        instantMessagingConfiguration = InstantMessagingConfiguration.GetInstance(VdirConfiguration.Instance);
                        if (!instantMessagingConfiguration.CheckConfiguration())
                        {
                            return(InstantMessageOperationError.NotConfigured);
                        }
                    }
                    finally
                    {
                        stopwatch.Stop();
                        OwaApplication.GetRequestDetailsLogger.Set(InstantMessageSignIn.LogMetadata.CheckConfiguration, stopwatch.ElapsedMilliseconds);
                    }
                    if (InstantMessageProvider.Initialize(instantMessagingConfiguration.ServerName, instantMessagingConfiguration.PortNumber, () => Globals.ApplicationTime, Globals.ActivityBasedPresenceDuration, Globals.ArePerfCountersEnabled))
                    {
                        ExTraceGlobals.InstantMessagingTracer.TraceDebug(0L, "Globals.Initialize: Success!");
                        result = InstantMessageOperationError.Success;
                    }
                    else
                    {
                        ExTraceGlobals.InstantMessagingTracer.TraceDebug(0L, "Globals.Initialize: Initialization failed.");
                        result = InstantMessageOperationError.NotConfigured;
                    }
                }
            }
            finally
            {
                if (Monitor.IsEntered(InstantMessageProvider.initializationLock))
                {
                    Monitor.Exit(InstantMessageProvider.initializationLock);
                }
            }
            return(result);
        }