Exemplo n.º 1
0
        public async Task <bool> SendApprolMails(Guid documentID, string documentType)
        {
            try
            {
                DocumentApprovalMailDetail docAprovalMailDetail = new DocumentApprovalMailDetail();
                bool     sendsuccess;
                string   link;
                string   loginLink = WebConfigurationManager.AppSettings["AppURL"];
                Settings settings  = new Settings();
                docAprovalMailDetail = _documentApprovalRepository.GetApprovalMailDetails(documentID, documentType);
                if (docAprovalMailDetail != null)
                {
                    link = WebConfigurationManager.AppSettings["AppURL"] + "/DocumentApproval/ViewPendingDocuments?ID=" + docAprovalMailDetail.ApprovalID + "&DocType=" + documentType + "&DocID=" + documentID;
                    if (docAprovalMailDetail.Status == "PENDING")
                    {
                        string mailBody = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Content/MailTemplate/SendForApproval.html"));

                        string imgLink = WebConfigurationManager.AppSettings["AppURL"] + "/Content/images/Pilot1.png";

                        Mail mail = new Mail();
                        mail.Body    = mailBody.Replace("$DocumentType$", docAprovalMailDetail.DocumentType).Replace("$DocumentNo$", docAprovalMailDetail.DocumentNo).Replace("$DocumentOwner$", docAprovalMailDetail.DocumentOwner).Replace("$Name$", docAprovalMailDetail.NextApprover).Replace("$ApproveLink$", link).Replace("$Date$", _pSASysCommon.GetCurrentDateTime().ToString(settings.DateFormat)).Replace("$LoginLink$", loginLink).Replace("$Logo$", imgLink);
                        mail.Subject = "Document Pending For Approval (" + docAprovalMailDetail.DocumentNo + ")";
                        mail.To      = docAprovalMailDetail.NextApproverEmail;
                        sendsuccess  = await _mailBusiness.MailSendAsync(mail);
                    }

                    if (docAprovalMailDetail.Status == "REJECTED")
                    {
                        string mailBody = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Content/MailTemplate/DocumentRejected.html"));
                        string imgLink  = WebConfigurationManager.AppSettings["AppURL"] + "/Content/images/Pilot1.png";
                        Mail   mail     = new Mail();
                        mail.Body    = mailBody.Replace("$DocumentType$", docAprovalMailDetail.DocumentType).Replace("$DocumentNo$", docAprovalMailDetail.DocumentNo).Replace("$Name$", docAprovalMailDetail.DocumentOwner).Replace("$Date$", _pSASysCommon.GetCurrentDateTime().ToString(settings.DateFormat)).Replace("$LoginLink$", loginLink).Replace("$Approver$", docAprovalMailDetail.NextApprover).Replace("$Remarks$", docAprovalMailDetail.Remarks).Replace("$Logo$", imgLink);
                        mail.Subject = "Document Rejected for ammedment (" + docAprovalMailDetail.DocumentNo + ")";
                        mail.To      = docAprovalMailDetail.DocumnetOwnerMail;
                        sendsuccess  = await _mailBusiness.MailSendAsync(mail);
                    }

                    if (docAprovalMailDetail.Status == "APPROVED")
                    {
                        string mailBody = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Content/MailTemplate/DocumentApproved.html"));
                        string imgLink  = WebConfigurationManager.AppSettings["AppURL"] + "/Content/images/Pilot1.png";
                        Mail   mail     = new Mail();
                        mail.Body    = mailBody.Replace("$DocumentType$", docAprovalMailDetail.DocumentType).Replace("$DocumentNo$", docAprovalMailDetail.DocumentNo).Replace("$Name$", docAprovalMailDetail.DocumentOwner).Replace("$Date$", _pSASysCommon.GetCurrentDateTime().ToString(settings.DateFormat)).Replace("$LoginLink$", loginLink).Replace("$Remarks$", docAprovalMailDetail.Remarks).Replace("$Logo$", imgLink);
                        mail.Subject = "Document Approved (" + docAprovalMailDetail.DocumentNo + ")";
                        mail.To      = docAprovalMailDetail.DocumnetOwnerMail;
                        sendsuccess  = await _mailBusiness.MailSendAsync(mail);
                    }
                }


                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public DocumentApprovalMailDetail GetApprovalMailDetails(Guid DocumentID, string DocumentTypeCode)
        {
            DocumentApprovalMailDetail documentMailDetail = new DocumentApprovalMailDetail();

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[PSA].[GetApprovalMailDetails]";
                        cmd.Parameters.Add("@DocumentID", SqlDbType.UniqueIdentifier).Value  = DocumentID;
                        cmd.Parameters.Add("@DocumentTypeCode", SqlDbType.NVarChar, 5).Value = DocumentTypeCode;
                        cmd.CommandType = CommandType.StoredProcedure;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                if (sdr.Read())
                                {
                                    {
                                        documentMailDetail.NextApprover      = (sdr["NextApprover"].ToString() != "" ? (sdr["NextApprover"].ToString()) : documentMailDetail.NextApprover);
                                        documentMailDetail.NextApproverEmail = (sdr["NextApproverEmail"].ToString() != "" ? (sdr["NextApproverEmail"].ToString()) : documentMailDetail.NextApproverEmail);
                                        documentMailDetail.DocumentNo        = (sdr["DocumentNo"].ToString() != "" ? (sdr["DocumentNo"].ToString()) : documentMailDetail.DocumentNo);
                                        documentMailDetail.DocumentType      = (sdr["DocumentType"].ToString() != "" ? (sdr["DocumentType"].ToString()) : documentMailDetail.DocumentType);
                                        documentMailDetail.DocumentOwner     = (sdr["DocumentOwner"].ToString() != "" ? (sdr["DocumentOwner"].ToString()) : documentMailDetail.DocumentOwner);
                                        documentMailDetail.DocumnetOwnerMail = (sdr["DocumentOwnerEmail"].ToString() != "" ? (sdr["DocumentOwnerEmail"].ToString()) : documentMailDetail.DocumnetOwnerMail);
                                        documentMailDetail.Status            = (sdr["DocumentStatus"].ToString() != "" ? (sdr["DocumentStatus"].ToString()) : documentMailDetail.Status);
                                        documentMailDetail.Remarks           = (sdr["Remarks"].ToString() != "" ? (sdr["Remarks"].ToString()) : documentMailDetail.Remarks);
                                        documentMailDetail.ApprovalID        = (sdr["ApprovalID"].ToString() != "" ? Guid.Parse(sdr["ApprovalID"].ToString()) : documentMailDetail.ApprovalID);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(documentMailDetail);
        }