public virtual IEnumerable previewMail(PXAdapter a) { if (Preview.AskExt( (graph, name) => { Preview.Current.MailAccountID = MassMails.Current.With(current => current.MailAccountID) ?? MailAccountManager.DefaultMailAccountID; Preview.Current.MailTo = MailAccountManager.GetDefaultEmailAccount(false).With(_ => _.Address); }) == WebDialogResult.OK) { Preview.View.Answer = WebDialogResult.OK; CheckFields(Preview.Cache, Preview.Current, typeof(CRMassMailPreview.mailAccountID), typeof(CRMassMailPreview.mailTo)); Preview.View.Answer = WebDialogResult.None; var mails = GetMailsForSending(true); if (mails.Count == 0) { throw new PXException(Messages.RecipientsNotFound); } var mailTo = Preview.Current.MailTo; var accountId = Preview.Current.MailAccountID; SendMassMail(accountId, mailTo, null, null, mails, false); Save.Press(); } yield return(MassMails.Current); }
public virtual IEnumerable previewMail(PXAdapter a) { if (Preview.AskExt((graph, name) => { Preview.Current.MailAccountID = MassMails.Current.MailAccountID ?? MailAccountManager.DefaultMailAccountID; Preview.Current.MailTo = MailAccountManager.GetDefaultEmailAccount(false)?.Address; }) == WebDialogResult.OK) { Preview.View.Answer = WebDialogResult.OK; CheckFields(Preview.Cache, Preview.Current, typeof(CRMassMailPreview.mailAccountID), typeof(CRMassMailPreview.mailTo)); Preview.View.Answer = WebDialogResult.None; // todo: probably should be IQueryable to optimize FirstOrDefault request var recipient = EnumerateRecipientsForSending().FirstOrDefault(); if (recipient == null) { throw new PXException(Messages.RecipientsNotFound); } var massMail = PXCache <CRMassMail> .CreateCopy(MassMails.Current); massMail.MailAccountID = Preview.Current.MailAccountID; massMail.MailTo = Preview.Current.MailTo; massMail.MailCc = null; massMail.MailBcc = null; AddSendedMessages( massMail, new Recipient(recipient.Contact, recipient.Format).GetSender(massMail).Send() ); Actions.PressSave(); } yield return(MassMails.Current); }