コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }