Ejemplo n.º 1
0
        /// <summary>
        /// Commit message
        /// Send the messages which are registered
        /// </summary>
        /// <param name="asynchronously">Commit message asynchronously</param>
        /// <returns>Return send result</returns>
        public static async Task <SendMessageResult> CommitAsync(bool asynchronously = true)
        {
            if (CurrentMessageBox?.Messages?.IsNullOrEmpty() ?? true)
            {
                return(SendMessageResult.MessageIsNullOrEmpty());
            }
            SendMessageResult sendMessageResult = null;
            var currentMessages = CurrentMessageBox.Messages.Select(c => c).ToList();

            CurrentMessageBox.Clear();
            if (asynchronously)
            {
                InternalQueueMessageItem messageInternalCommand = new InternalQueueMessageItem(MessageProvider, currentMessages, WorkManager.Current);
                InternalQueueManager.GetQueue(EZNEWConstants.InternalQueueNames.Message).Enqueue(messageInternalCommand);
                sendMessageResult = SendMessageResult.SendSuccess();
            }
            else
            {
                sendMessageResult = await(MessageProvider?.SendAsync(new SendMessageOptions()
                {
                    Messages = currentMessages
                }) ?? Task.FromResult(SendMessageResult.NoProvider())).ConfigureAwait(false);
            }
            return(sendMessageResult);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Direct send message
        /// </summary>
        /// <param name="message">Message</param>
        /// <returns>Return send result</returns>
        public static async Task <SendMessageResult> DirectSendAsync(MessageInfo message)
        {
            SendMessageOptions sendMessageOptions = new SendMessageOptions()
            {
                Messages = new List <MessageInfo>(1)
                {
                    message
                }
            };

            return(await(MessageProvider?.SendAsync(sendMessageOptions) ?? Task.FromResult(SendMessageResult.NoProvider())).ConfigureAwait(false));
        }