/// <summary> /// Send sms message /// </summary> /// <param name="smsAccount">Sms account</param> /// <param name="messageTemplate">Message template</param> /// <param name="message">Message</param> /// <param name="smsTag">Sms tag</param> /// <param name="mobiles">Mobiles</param> /// <param name="asynchronously">Whether send by asynchronously</param> /// <returns>Return send result</returns> public static SendMessageResult SendSmsMessage(SmsAccount smsAccount, MessageTemplate messageTemplate, MessageInfo message, string smsTag, IEnumerable <string> mobiles, bool asynchronously = true) { return(SendSmsMessageAsync(smsAccount, messageTemplate, message, smsTag, mobiles, asynchronously).Result); }
/// <summary> /// Send sms message /// </summary> /// <param name="smsAccount">Sms account</param> /// <param name="messageTemplate">Message template</param> /// <param name="message">Message</param> /// <param name="smsTag">Sms tag</param> /// <param name="mobiles">Mobiles</param> /// <param name="asynchronously">Whether send by asynchronously</param> /// <returns>Return send result</returns> public static async Task <SendMessageResult> SendSmsMessageAsync(SmsAccount smsAccount, MessageTemplate messageTemplate, MessageInfo message, string smsTag, IEnumerable <string> mobiles, bool asynchronously = true) { var msgResult = GetSmsOptions(messageTemplate, message, smsTag, mobiles, asynchronously, out var smsOptions); if (!msgResult.Success || smsOptions == null) { return(msgResult); } SendSmsResult smsSendResult = await SmsManager.SendAsync(smsAccount, smsOptions).ConfigureAwait(false); return(smsSendResult.Success ? SendMessageResult.SendSuccess() : SendMessageResult.SendFailed(smsSendResult.Description)); }
static SendMessageResult GetEmailOptions(MessageTemplate messageTemplate, MessageInfo message, string emailCategory, IEnumerable <string> emails, bool asynchronously, out SendEmailOptions sendEmailOptions) { sendEmailOptions = null; if (messageTemplate == null) { throw new ArgumentNullException(nameof(MessageTemplate)); } if (message == null) { throw new ArgumentNullException(nameof(MessageInfo)); } if (string.IsNullOrWhiteSpace(messageTemplate.Title)) { throw new Exception("The message template title is null or empty"); } if (string.IsNullOrWhiteSpace(messageTemplate.Content)) { throw new Exception("The message template content is null or empty"); } if (emails.IsNullOrEmpty()) { throw new Exception("The emails is null or empty"); } var parameterDict = message.Parameters?.ObjectToStringDcitionary(); Dictionary <string, string> templateParameters = GetTemplateParameters(parameterDict); //title var titleResolveResult = ResolveTemplate(messageTemplate.Title, templateParameters); if (!titleResolveResult.Item1 || string.IsNullOrWhiteSpace(titleResolveResult.Item3)) { if (!string.IsNullOrWhiteSpace(titleResolveResult.Item2)) { return(SendMessageResult.NoParameter($"Not set '{titleResolveResult.Item2}' value in the email title template")); } return(SendMessageResult.MessageIsNullOrEmpty($"The email title is null or empty")); } //content var contentResolveResult = ResolveTemplate(messageTemplate.Content, templateParameters); if (!contentResolveResult.Item1 || string.IsNullOrWhiteSpace(contentResolveResult.Item3)) { if (!string.IsNullOrWhiteSpace(contentResolveResult.Item2)) { return(SendMessageResult.NoParameter($"Not set '{contentResolveResult.Item2}' value in the email body template")); } return(SendMessageResult.MessageIsNullOrEmpty($"The email body is null or empty")); } //Send email sendEmailOptions = new SendEmailOptions() { Category = emailCategory, Content = contentResolveResult.Item3, Subject = titleResolveResult.Item3, Asynchronously = asynchronously, Emails = emails }; sendEmailOptions.AddWorkId(message.WorkId); sendEmailOptions.AddTemplateMessageId(message.Id); return(SendMessageResult.SendSuccess()); }
/// <summary> /// Send email message /// </summary> /// <param name="emailAccount">Email account</param> /// <param name="messageTemplate">Message template</param> /// <param name="message">Message</param> /// <param name="emailCategory">Email category</param> /// <param name="emails">Emails</param> /// <param name="asynchronously">Whether send by asynchronously</param> /// <returns>Return send result</returns> public static SendMessageResult SendEmailMessage(EmailAccount emailAccount, MessageTemplate messageTemplate, MessageInfo message, string emailCategory, IEnumerable <string> emails, bool asynchronously = true) { return(SendEmailMessageAsync(emailAccount, messageTemplate, message, emailCategory, emails, asynchronously).Result); }
/// <summary> /// Send email message /// </summary> /// <param name="emailAccount">Email account</param> /// <param name="messageTemplate">Message template</param> /// <param name="message">Message</param> /// <param name="emailCategory">Email category</param> /// <param name="emails">Emails</param> /// <param name="asynchronously">Whether send by asynchronously</param> /// <returns>Return send result</returns> public static async Task <SendMessageResult> SendEmailMessageAsync(EmailAccount emailAccount, MessageTemplate messageTemplate, MessageInfo message, string emailCategory, IEnumerable <string> emails, bool asynchronously = true) { var msgResult = GetEmailOptions(messageTemplate, message, emailCategory, emails, asynchronously, out var emailOptions); if (!msgResult.Success || emailOptions == null) { return(msgResult); } SendEmailResult emailSendResult = (await EmailManager.SendAsync(emailAccount, emailOptions).ConfigureAwait(false))?.FirstOrDefault(); return((emailSendResult?.Success ?? false) ? SendMessageResult.SendSuccess() : SendMessageResult.SendFailed(emailSendResult?.Message)); }
/// <summary> /// Direct send message /// </summary> /// <param name="message">message</param> /// <returns>Return send result</returns> public static SendMessageResult DirectSend(MessageInfo message) { return(DirectSendAsync(message).Result); }