Exemplo n.º 1
0
 public void SendAndClearMessageList()
 {
     ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList");
     if (this.Conversation == null)
     {
         ExTraceGlobals.InstantMessagingTracer.TraceError((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList. Conversation is null.");
         return;
     }
     if (this.messageList != null && this.messageList.Count > 0)
     {
         ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList. Message list count: {0}", new object[]
         {
             this.messageList.Count
         });
         IIMModality iimmodality = this.Conversation.GetModality(1) as IIMModality;
         if (iimmodality == null)
         {
             ExTraceGlobals.InstantMessagingTracer.TraceError((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList. IIMModality is null.");
             return;
         }
         lock (this.lockObject)
         {
             foreach (Tuple <string, string> tuple in this.messageList)
             {
                 iimmodality.BeginSendMessage(tuple.Item1, tuple.Item2, new AsyncCallback(this.SendMessageCallback), iimmodality);
             }
             this.messageList.Clear();
             this.messageList = null;
         }
     }
 }
 internal void RegisterDeliverySuccessNotification(IIMModality context, int messageId)
 {
     lock (this.deliverySuccessNotifications)
     {
         this.deliverySuccessNotifications.Add(new InstantMessageOCSPayload.DeliverySuccessNotification(context, messageId));
     }
 }
 // Token: 0x06000A1E RID: 2590 RVA: 0x000232CE File Offset: 0x000214CE
 internal DeliverySuccessNotification(InstantMessageOCSProvider provider, IIMModality context, int messageId, RequestDetailsLogger logger)
 {
     this.Provider  = provider;
     this.Context   = context;
     this.MessageId = messageId;
     this.Logger    = logger;
 }
Exemplo n.º 4
0
 public void SendAndClearMessageList()
 {
     ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList");
     if (this.conversation == null)
     {
         ExTraceGlobals.InstantMessagingTracer.TraceError((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList. Conversation is null.");
         return;
     }
     if (this.messageList != null && this.messageList.Count > 0)
     {
         ExTraceGlobals.InstantMessagingTracer.TraceDebug <int>((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList. Message list count: {0}", this.messageList.Count);
         IIMModality iimmodality = this.conversation.GetModality(1) as IIMModality;
         if (iimmodality == null)
         {
             ExTraceGlobals.InstantMessagingTracer.TraceError((long)this.GetHashCode(), "InstantMessageQueue.SendAndClearMessageList. IIMModality is null.");
             return;
         }
         lock (this.lockObject)
         {
             foreach (InstantMessageChat instantMessageChat in this.messageList)
             {
                 iimmodality.BeginSendMessage(instantMessageChat.ContentType, instantMessageChat.Message, new AsyncCallback(this.SendMessageCallback), iimmodality);
             }
             this.messageList.Clear();
             this.messageList = null;
         }
     }
 }
Exemplo n.º 5
0
        private void SendMessageCallback(IAsyncResult result)
        {
            IIMModality iimmodality = null;

            try
            {
                ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageQueue.SendMessageCallback");
                iimmodality = (result.AsyncState as IIMModality);
                if (iimmodality == null)
                {
                    ExTraceGlobals.InstantMessagingTracer.TraceError((long)this.GetHashCode(), "InstantMessageQueue.SendMessageCallback. Instant Messaging Modality is null.");
                }
                else
                {
                    iimmodality.EndSendMessage(result);
                }
            }
            catch (InstantMessagingException ex)
            {
                InstantMessagePayloadUtilities.GenerateMessageNotDeliveredPayload(this.notifier, "InstantMessageQueue.SendMessageCallback", (iimmodality == null || iimmodality.Conversation == null) ? 0 : iimmodality.Conversation.Cid, ex);
                InstantMessagingError code = ex.Code;
                if (code <= 18102)
                {
                    if (code == 0)
                    {
                        goto IL_DB;
                    }
                    if (code == 18102)
                    {
                        InstantMessagingErrorSubCode subCode = ex.SubCode;
                        if (subCode != 9)
                        {
                            InstantMessageUtilities.SendWatsonReport("InstantMessageQueue.SendMessageCallback", this.userContext, ex);
                            goto IL_DB;
                        }
                        goto IL_DB;
                    }
                }
                else if (code == 18201 || code == 18204)
                {
                    goto IL_DB;
                }
                InstantMessageUtilities.SendWatsonReport("InstantMessageQueue.SendMessageCallback", this.userContext, ex);
                IL_DB :;
            }
            catch (Exception exception)
            {
                InstantMessageUtilities.SendWatsonReport("InstantMessageQueue.SendMessageCallback", this.userContext, exception);
            }
        }
        private void NotifyDeliverySuccessCallback(IAsyncResult result)
        {
            IIMModality iimmodality = null;

            try
            {
                ExTraceGlobals.InstantMessagingTracer.TraceDebug((long)this.GetHashCode(), "InstantMessageOCSPayload.NotifyDeliverySuccessCallback.");
                iimmodality = (result.AsyncState as IIMModality);
                if (iimmodality == null)
                {
                    ExTraceGlobals.InstantMessagingTracer.TraceError((long)this.GetHashCode(), "InstantMessageOCSPayload.NotifyDeliverySuccessCallback. instantMessaging is null.");
                }
                else
                {
                    iimmodality.EndNotifyDeliverySuccess(result);
                }
            }
            catch (InstantMessagingException ex)
            {
                if (!iimmodality.IsConnected)
                {
                    ExTraceGlobals.InstantMessagingTracer.TraceDebug <InstantMessagingException>((long)this.GetHashCode(), "InstantMessageOCSPayload.NotifyDeliverySuccessCallback. Ignoring exception because IM conversation is not connected : {0}.", ex);
                }
                else
                {
                    InstantMessagingError code = ex.Code;
                    switch (code)
                    {
                    case 18102:
                        if (ex.SubCode == 9)
                        {
                            ExTraceGlobals.InstantMessagingTracer.TraceError <InstantMessagingException>((long)this.GetHashCode(), "InstantMessageOCSPayload.NotifyDeliverySuccessCallback. OcsFailureResponse. {0}", ex);
                            goto IL_113;
                        }
                        InstantMessageUtilities.SendWatsonReport("InstantMessageOCSPayload.NotifyDeliverySuccessCallback", this.userContext, ex);
                        goto IL_113;

                    case 18103:
                        break;

                    case 18104:
                        ExTraceGlobals.InstantMessagingTracer.TraceError <InstantMessagingException>((long)this.GetHashCode(), "InstantMessageOCSPayload.NotifyDeliverySuccessCallback. Failed to send delivery success notification. OcsFailureResponse. {0}", ex);
                        goto IL_113;

                    default:
                        if (code == 18201)
                        {
                            ExTraceGlobals.InstantMessagingTracer.TraceError <InstantMessagingException>((long)this.GetHashCode(), "InstantMessageOCSPayload.NotifyDeliverySuccessCallback. OcsFailureResponse. {0}", ex);
                            goto IL_113;
                        }
                        break;
                    }
                    InstantMessageUtilities.SendWatsonReport("InstantMessageOCSPayload.NotifyDeliverySuccessCallback", this.userContext, ex);
                }
                IL_113 :;
            }
            catch (Exception exception)
            {
                InstantMessageUtilities.SendWatsonReport("InstantMessageOCSPayload.NotifyDeliverySuccessCallback", this.userContext, exception);
            }
        }
 internal DeliverySuccessNotification(IIMModality context, int messageId)
 {
     this.Context   = context;
     this.MessageId = messageId;
 }
 internal void RegisterDeliverySuccessNotification(InstantMessageOCSProvider provider, IIMModality context, int messageId, RequestDetailsLogger logger)
 {
     lock (this.deliverySuccessNotifications)
     {
         this.deliverySuccessNotifications.Add(new DeliverySuccessNotification(provider, context, messageId, logger));
     }
 }