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);
        }
示例#2
0
 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));
     }
 }