Exemple #1
0
        // If your activity returns a value, derive from CodeActivity<TResult>
        // and return the value from the Execute method.
        protected override void Execute(CodeActivityContext context)
        {
            try {
                // Can read this information from config file.

                NotificationDefinition message    = NotificationDef.Get(context) as NotificationDefinition;
                SmtpClient             SmtpServer = ReadSMTPConfigurationInfo(message);


                MailMessage mail = new MailMessage();

                // Sender
                mail.From = message.Sender;

                // Add attachments
                foreach (var attachment in message.Attachments)
                {
                    mail.Attachments.Add(attachment);
                }

                // To Receipients
                foreach (var toRecept in message.ToRecipients)
                {
                    mail.To.Add(toRecept);
                }

                // Cc Receipients
                if (message.CCRecipients != null)
                {
                    foreach (var ccRecept in message.CCRecipients)
                    {
                        mail.To.Add(ccRecept);
                    }
                }

                // Bcc Receipients
                if (message.BCCRecipients != null)
                {
                    foreach (var bccRecept in message.BCCRecipients)
                    {
                        mail.To.Add(bccRecept);
                    }
                }

                // Subject.
                mail.Subject = message.Subject;

                // Body.
                mail.Body = NotificationHelper.XSLTransform(XSLPath.Get(context), CustomerName.Get(context), EntityID.Get(context), CompanyName.Get(context), UserName.Get(context), BookingID.Get(context), SOID.Get(context));

                // Body Type
                mail.IsBodyHtml = message.FormatType == EnumFormatType.HTML;

                // Send email.
                SmtpServer.Send(mail);

                Result.Set(context, EntityID.Get(context));
            }
            catch (Exception ex) {
                ExceptionFormatter formater          = new ExceptionFormatter();
                string             formatedException = formater.Format("Send mail error", ex);
                Common.MessageLogger.Instance.LogMessage(ex, formatedException, Common.Priority.High, 0, System.Diagnostics.TraceEventType.Critical, "WF Email Error", "Email");
                throw ex;
            }
        }