Пример #1
0
 public async override Task <IMessageForSend> ResolveAndSendAsync(MessageResolver resolver)
 {
     return(new SmsMessageForSend(
                await resolver.ResolveAsync(this, Phone),
                await resolver.ResolveAsync(this, Message),
                await resolver.ResolveAsync(this, ExternalId)
                ));
 }
Пример #2
0
        async Task <AttachementForSend> ResolveAttachmentAsync(MessageAttachment att, MessageResolver resolver)
        {
            var ma = new AttachementForSend()
            {
                Name   = (await resolver.ResolveAsync(this, att.Name))?.Trim(),
                Mime   = (await resolver.ResolveAsync(this, att.Mime))?.Trim(),
                Stream = await resolver.ResolveStreamAsync(this, att.Data)
            };

            return(ma);
        }
Пример #3
0
        public async override Task <IMessageForSend> ResolveAndSendAsync(MessageResolver resolver)
        {
            var nm = new EmailMessageForSend()
            {
                Subject = await resolver.ResolveAsync(this, Subject),
                Body    = await resolver.ResolveAsync(this, Body),
            };
            var body = await LoadBodyTemplate(this, resolver);

            if (body != null)
            {
                nm.Body = body;
            }
            nm.To = await ResolveCollectionAsync(To, resolver);

            nm.Bcc = await ResolveCollectionAsync(Bcc, resolver);

            nm.CC = await ResolveCollectionAsync(CC, resolver);

            if (From != null)
            {
                nm.From = new MessageAddress(await resolver.ResolveAsync(this, From.Address), await resolver.ResolveAsync(this, From.DisplayName));
            }
            if (Attachments != null && Attachments.Count != 0)
            {
                foreach (var att in Attachments)
                {
                    var ratt = await ResolveAttachmentAsync(att, resolver);

                    if (ratt.Stream != null)
                    {
                        nm.Attachments.Add(ratt);
                    }
                }
            }
            if (Reports != null && Reports.Count != 0)
            {
                foreach (var rep in Reports)
                {
                    var ratt = await ResolveReportAsync(rep, resolver);

                    if (ratt.Stream != null)
                    {
                        nm.Attachments.Add(ratt);
                    }
                }
            }
            return(nm);
        }
Пример #4
0
        async Task <MessageAddressCollection> ResolveCollectionAsync(MessageAddressCollection coll, MessageResolver resolver)
        {
            if (coll == null || coll.Count == 0)
            {
                return(null);
            }
            var newColl = new MessageAddressCollection();

            foreach (var addr in coll)
            {
                var na = new MessageAddress(
                    await resolver.ResolveAsync(this, addr.Address),
                    await resolver.ResolveAsync(this, addr.DisplayName));
                newColl.Add(na);
            }
            return(newColl);
        }
Пример #5
0
        public async override Task <IMessageForSend> ResolveAndSendAsync(MessageResolver resolver)
        {
            var nm = new EmailMessage()
            {
                Subject      = await resolver.ResolveAsync(this, Subject),
                Body         = await resolver.ResolveAsync(this, Body),
                BodyTemplate = await resolver.ResolveAsync(this, BodyTemplate)
            };
            await nm.LoadBodyTemplate(this, resolver);

            nm.To = await ResolveCollectionAsync(To, resolver);

            nm.Bcc = await  ResolveCollectionAsync(Bcc, resolver);

            if (From != null)
            {
                nm.From = new MessageAddress(await resolver.ResolveAsync(this, From.Address), await resolver.ResolveAsync(this, From.DisplayName));
            }
            return(nm);
        }
Пример #6
0
        async Task <AttachementForSend> ResolveReportAsync(MessageReport rep, MessageResolver resolver)
        {
            var repName = await resolver.ResolveAsync(this, rep.Name);

            if (repName == null)
            {
                repName = "report";
            }
            repName = Path.ChangeExtension(repName.Trim(), ".pdf");
            var ma = new AttachementForSend()
            {
                Name   = repName,
                Mime   = MimeTypes.Application.Pdf,
                Stream = await resolver.ResolveReportAsync(this, rep)
            };

            return(ma);
        }