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; }
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; } } }
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)); } }