Ejemplo n.º 1
0
        public static Email ToEmailDTO(EmailData.EmailRow row, EmailAccount from, List <EmailAttachment> attachments)
        {
            string[]            tos    = row.To.Split(';');
            List <EmailContact> toList = (from t in tos select new EmailContact(t)).ToList();
            Email email = new Email(row.Id,
                                    row.Guid,
                                    from,
                                    toList,
                                    row.Subject,
                                    row.Message,
                                    row.IsHtml,
                                    row.BatchId,
                                    row.SendDate,
                                    row.IsSigned,
                                    row.IsEncrypted,
                                    (EmailSendStatus)Enum.Parse(typeof(EmailSendStatus), row.SendStatus),
                                    row.DateCreated,
                                    row.CreatedBy,
                                    row.LastEdited,
                                    row.LastEditedBy);

            if (attachments != null)
            {
                email.Attachments.AddRange(attachments);
            }
            return(email);
        }
        private void UpdateEmail(Email email)
        {
            if (email == null || email.Id <= 0)
            {
                throw new ArgumentException("Could not update email - email is null or has invalid id");
            }
            EmailTableAdapter adapter = new EmailTableAdapter();

            EmailData.EmailDataTable table = adapter.GetEmail(email.Id);
            if (table.Count == 0)
            {
                throw new ArgumentException(string.Format("Could not update email - email does not exist emailId=[{0}]", email.Id));
            }
            EmailData.EmailRow row = table[0];
            row.FailedAttempts = email.FailAttempts;
            if (email.FailedDate != null)
            {
                row.FailedDate = (DateTime)email.FailedDate;
            }
            row.FailedException = email.FailedException;
            if (email.SendDate != null)
            {
                row.SendDate = (DateTime)email.SendDate;
            }
            row.SendStatus = email.SendingStatus.ToString();
            adapter.Update(row);
        }
        public Email GetEmail(int emailId)
        {
            if (emailId <= 0)
            {
                return(null);
            }
            EmailTableAdapter adapter = new EmailTableAdapter();

            EmailData.EmailDataTable table = adapter.GetEmail(emailId);
            if (table.Count == 0)
            {
                return(null);
            }
            EmailData.EmailRow row = table[0];
            return(EmailerHelper.ToEmailDTO(row, GetEmailAccountByEmailAddress(row.FromEmailAddress), GetEmailAttachments(row.Id)));
        }
        public void UpdateEmailStatus(int id, EmailSendStatus status, string lastEditedBy)
        {
            if (id == 0)
            {
                throw new ArgumentException(string.Format("Could not update email status - invalid email [{0}].", id));
            }
            EmailTableAdapter adapter = new EmailTableAdapter();

            EmailData.EmailDataTable table = adapter.GetEmail(id);
            if (table.Count == 0)
            {
                throw new ArgumentException(string.Format("Could not update email - email does not exist emailId=[{0}]", id));
            }
            EmailData.EmailRow row = table[0];
            row.SendStatus = status.ToString();
            adapter.Update(row);
        }