예제 #1
0
 public void OnSendMessage(UccInstantMessagingSession pEventSource, UccSessionOperationEvent pEventData)
 {
     if (SendingMessage != null)
     {
         SendingMessage(pEventSource, pEventData);
     }
 }
예제 #2
0
        void _IUccInstantMessagingSessionEvents.OnSendMessage(UccInstantMessagingSession eventSource, UccSessionOperationEvent eventData)
        {
            int messageId = eventData.OriginalOperationContext.Context.get_Property(ContextMessageId).NumericValue;

            OutgoingMessage message = this.sendingMessages[messageId];

            foreach (IUccSessionParticipantOperationEvent operationEvent in eventData.ParticipantResults)
            {
                message.GetParticipantResult(operationEvent.ParticipantEndpoint.Uri).Set(
                    operationEvent.Result
                    );
            }

            int successCount = 0;
            int failedCount  = 0;

            foreach (IParticipantResult result in message.SendResults)
            {
                if (result.IsComplete && Helpers.IsOperationSuccess(result.StatusCode))
                {
                    successCount++;
                }
                if (result.IsComplete && Helpers.IsOperationFailed(result.StatusCode))
                {
                    failedCount++;
                }
            }

            if (successCount + failedCount == message.SendResults.Count)
            {
                this.sendingMessages.Remove(messageId);

                if (successCount == 0)
                {
                    message.State = OutgoingMessageState.Failed;
                }
                else if (failedCount == 0)
                {
                    message.State = OutgoingMessageState.Success;
                }
                else
                {
                    message.State = OutgoingMessageState.PartialSuccess;
                }

                if (this.SendResult != null && message.ContentType != MessageContentType.FileData)
                {
                    this.SendResult(this, new ImSessionEventArgs1(message));
                }
            }
        }
예제 #3
0
 void _IUccInstantMessagingSessionEvents.OnSendMessage(
     UccInstantMessagingSession eventSource,
     UccSessionOperationEvent eventData)
 {
 }
 void _IUccInstantMessagingSessionEvents.OnSendMessage(
                UccInstantMessagingSession eventSource,
                UccSessionOperationEvent eventData)
 {
 }