示例#1
0
        public ActionResult PreparePublicationMail(int ReleaseID, int CPID, string base64string, bool isDraft)
        {
            string  PublishCP;
            string  ToEmail = "";
            Release PublishRelease;
            PublicationMailDetails PubliactionMail = new PublicationMailDetails();

            using (IReleaseRepository db = new ReleaseRepository())
            {
                PublishRelease = db.WhereAndInclude(r => r.ReleaseID == ReleaseID, r => r.Account)
                                 .Include(r => r.ReleaseCPs.Select(cp => cp.CP)).FirstOrDefault();

                PublishCP = PublishRelease.ReleaseCPs.FirstOrDefault(cp => cp.CPID == CPID).CP.Name;

                db.GetEmployeesMailAddress(ReleaseID, isDraft).ToList().ForEach(s => ToEmail += s + "; ");

                PubliactionMail.To  = ToEmail;
                PubliactionMail.BCC = "*****@*****.**";
                // PubliactionMail.CC = "*****@*****.**";
                string MailTypeSubject = isDraft ? "Draft " : "Official ";
                PubliactionMail.Subject   = PublishRelease.Account.Name + " - Release " + PublishRelease.Name + " - " + PublishCP + " (" + MailTypeSubject + " - PREP ID " + ReleaseID.ToString() + ")";
                PubliactionMail.ReleaseID = ReleaseID;
                PubliactionMail.CPID      = CPID;

                // upload status screenshot
                Files.UploadImage(base64string, "Status" + ReleaseID.ToString(), true);

                PubliactionMail.imagePath = VirtualPathUtility.ToAbsolute("~/Content/Images/ScoreImages") + "/Status" + ReleaseID.ToString() + ".png";
            }
            return(PartialView("PopUpMail", PubliactionMail));
        }
示例#2
0
        public async Task <ActionResult> SendPublicationMail(PublicationMailDetails mail, StatusVM status, bool IsDarft)
        {
            try
            {
                MailMessage message        = new MailMessage();
                var         SrcImage       = VirtualPathUtility.ToAbsolute("~/Content/Images/ScoreImages") + "/Status" + mail.ReleaseID.ToString() + ".png";
                var         attachmentPath = System.Web.HttpContext.Current.Server.MapPath(SrcImage);
                var         contentID      = mail.ReleaseID.ToString() + ".png";
                var         src            = "cid:" + contentID;
                var         addresses      = mail.To.Split(';');

                if (!IsDarft)
                {
                    message.Bcc.Add(mail.BCC);
                }

                addresses.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList().ForEach(item => message.To.Add(item));
                message.Subject = mail.Subject;
                message.Body    = "<html>" +
                                  "<body>" +
                                  "<p style='color: black; font - family: calibary !important; font - size: 11px;'>" + (mail.beforeMessage != null ? mail.beforeMessage.Replace("\n", "<br/>") : "") + "</p>" +
                                  "<img width='50px' height='70px' src='" + src + "' >" +
                                  "<p style='color: black; font - family: calibary !important; font - size: 11px;'>" + (mail.afterMessage != null ? mail.afterMessage.Replace("\n", "<br/>") : "") + "</p>" +
                                  "</body>" +
                                  "</html>";

                // declaring image settings
                Attachment inline = new Attachment(attachmentPath);
                inline.ContentDisposition.Inline          = true;
                inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
                inline.ContentId             = contentID;
                inline.ContentType.MediaType = "image/png";
                inline.ContentType.Name      = Path.GetFileName(attachmentPath);
                message.Attachments.Add(inline);

                message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
                message.IsBodyHtml = true;

                var FileName = message.SendMail("_PRR", !IsDarft);
                inline.Dispose();

                // formal publish - update Publicction details and save area scores in db
                if (!IsDarft) // is formal publish
                {
                    await updatePublicationDetails(mail.ReleaseID, status.CPID, FileName);
                    await SaveAreaScore(status);
                }

                deletePublicationMailIMG(mail.imagePath);

                return(Json(new { IsSent = true }));
            }
            catch (Exception ex)
            {
                return(Json(new { IsSent = false, Error = ex }));
            }
        }