Beispiel #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);
        }
Beispiel #2
0
 /// <summary>
 /// Register message
 /// </summary>
 /// <param name="messages">Messages</param>
 public static void Register(params MessageInfo[] messages)
 {
     if (CurrentMessageBox == null)
     {
         throw new Exception($"Please call {nameof(MessageManager.Init)} method first to initialize MessageManager");
     }
     CurrentMessageBox.Add(messages);
 }
Beispiel #3
0
 /// <summary>
 /// Remove all current message
 /// </summary>
 internal static void Clear()
 {
     CurrentMessageBox?.Clear();
 }