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