public void Process(SendMessageArgs args) { //If the message is a SMS, we send it here, otherwise we let base handle var sms = args.EcmMessage as SMSMessageType; if (sms == null) { base.Process(args); return; } //It's an SMS var message = args.CustomData["EmailMessage"] as EmailMessage; if (message.Recipients.Count < 1) { args.AddMessage("Missing Recipients from EmailMessage argument."); return; } args.StartSendTime = DateTime.UtcNow; var from = message.Subject; var phoneNumber = sms.PersonalizationRecipient.Identifiers.FirstOrDefault(x => x.Source == "mobile").Identifier; var text = WebUtility.HtmlDecode(message.PlainTextBody); try { //TODO: DI this. var service = new SMSService(); service.SendSMS(phoneNumber, text); //DO STUFF IN HERE TO SEND SMS base.Process(args); } catch (Exception ex) { throw new NonCriticalException(ex.Message, ex); } args.AddMessage("ok", PipelineMessageType.Information); args.SendingTime = Util.GetTimeDiff(args.StartSendTime, DateTime.UtcNow); }
public void Process(SendMessageArgs args) { if (!(args.EcmMessage is MessageItem ecmmessage)) { return; } if (!(args.CustomData["EmailMessage"] is EmailMessage message)) { args.AddMessage("Missing EmailMessage from arguments."); return; } foreach (var attachmentReference in ecmmessage.CustomPersonTokens.Keys.Where(k => k.StartsWith("attachment_"))) { var storedFileJSon = ecmmessage.CustomPersonTokens[attachmentReference].ToString(); var storedFileFromToken = JsonConvert.DeserializeObject <StoredFileInfo>(storedFileJSon); var storedFile = fileStorageProvider.GetFile(storedFileFromToken.FileId); var fileContent = GetStreamAsByteArray(storedFile.File); message.Attachments.Add(new FileResource(storedFile.FileInfo.FileName, fileContent)); } }
public void Process(SendMessageArgs args) { if (!(args.EcmMessage is MessageItem ecmmessage)) { return; } if (!(args.CustomData["EmailMessage"] is EmailMessage message)) { args.AddMessage("Missing EmailMessage from arguments."); return; } foreach (var attachmentReference in ecmmessage.CustomPersonTokens.Keys.Where(k => k.StartsWith("attachment_"))) { var storedFileJson = ecmmessage.CustomPersonTokens[attachmentReference].ToString(); var storedFile = JsonConvert.DeserializeObject <StoredFile>(storedFileJson); var fileUploadStorageProvider = fileUploadStorageProviderFactory.GetDefaultFileUploadStorageProvider(); var fileContent = fileUploadStorageProvider.GetFileAsBytes(storedFile); message.Attachments.Add(new FileResource(storedFile.OriginalFileName, fileContent)); } }