Exemplo n.º 1
0
        static int LoadEmail(bool ProductionOnly, string[] args, SqlCommand cmd2, DateTime CurrentDateTime, string EmailIdentifier)
        {
            int Status = 0;
            // Create a database connection
            SqlConnection conn = new SqlConnection("Data Source=(local);Integrated Security=SSPI;Initial Catalog=EATDW;Connection Timeout=120");

            conn.Open();
            SqlCommand cmd = conn.CreateCommand();

            // Retrieve emails from the database.
            cmd.CommandText = "Select Top 900 SendEmailId,EmailTo,EmailCC,EmailSubject,EmailBodyText,EmailBodyDataTableHeader,EmailBodyDataTable,EmailBodyDataTableFooter From Email_SendEmail_Archive Where SendEmailType = '" + args[0] + "' And SendEmailLevelName = '" + args[1] + "' And SendAttemptDateTime = '" + CurrentDateTime + "' And SendStatus = 'Not Sent' And SummarySegment = '" + args[3] + "'";

            SqlDataReader reader = cmd.ExecuteReader();

            String SendEmailId = "";
            String EmailTo;
            String EmailCC;
            String EmailSubject;
            String EmailBody;
            String EmailBodyText;
            String EmailBodyDataTableHeader;
            String EmailBodyDataTable;
            String EmailBodyDataTableFooter;

            try
            {
                while (reader.Read())
                {
                    SendEmailId              = reader["SendEmailId"].ToString();
                    EmailTo                  = reader["EmailTo"].ToString();
                    EmailCC                  = reader["EmailCC"].ToString();
                    EmailSubject             = reader["EmailSubject"].ToString();
                    EmailBodyText            = reader["EmailBodyText"].ToString();
                    EmailBodyDataTableHeader = reader["EmailBodyDataTableHeader"].ToString();
                    EmailBodyDataTable       = reader["EmailBodyDataTable"].ToString();
                    EmailBodyDataTableFooter = reader["EmailBodyDataTableFooter"].ToString();

                    // Prep the email for sending
                    EmailTo = EmailTo.Replace(";", "@microsoft.com,");
                    if (EmailTo != "")
                    {
                        EmailTo = EmailTo.Substring(0, EmailTo.Length - 1);
                    }

                    EmailCC = EmailCC.Replace(";", "@microsoft.com,");
                    if (EmailCC != "")
                    {
                        EmailCC = EmailCC.Substring(0, EmailCC.Length - 1);
                    }


                    EmailBody = EmailBodyText;
                    if (!ProductionOnly)
                    {
                        EmailBody = EmailBody.Replace("<tr><td><img src=\"http://annuity/emailbanner.jpg\"/><br/></td></tr>", "<tr><td>To: [EmailTo]</td></tr><tr><td>CC: [EmailCC]</td></tr><tr><td><img src=\"http://annuity/emailbanner.jpg\"/><br/></td></tr>");
                        EmailBody = EmailBody.Replace("[EmailTo]", EmailTo);
                        EmailBody = EmailBody.Replace("[EmailCC]", EmailCC);
                    }
                    EmailBody = EmailBody.Replace("[EmailBodyDataTableHeader]", EmailBodyDataTableHeader);
                    EmailBody = EmailBody.Replace("[EmailBodyDataTable]", EmailBodyDataTable);
                    EmailBody = EmailBody.Replace("[EmailBodyDataTableFooter]", EmailBodyDataTableFooter);
                    EmailBody = EmailBody.Replace("[EmailIdentifier]", EmailIdentifier);



                    //Console.WriteLine("done setting parameters for: " + SendEmailId);//test

                    //Console.WriteLine("EmailTo:" + EmailTo);//test
                    //Console.WriteLine("EmailCC:" + EmailCC);//test

                    // Send Email
                    try
                    {
                        SendEmail(EmailTo, EmailCC, EmailSubject, EmailBody, SendEmailId, ProductionOnly);

                        //Console.WriteLine("done sending email for: " + SendEmailId);//test


                        cmd2.CommandType = CommandType.Text;
                        cmd2.CommandText = "Update Email_SendEmail_Archive Set SendStatus = 'Success' Where SendEmailId = " + SendEmailId + " And SendAttemptDateTime = '" + CurrentDateTime + "'";
                    }
                    catch (Exception ex)
                    {
                        String ErrorMessage = ex.Message;
                        //Console.WriteLine(ErrorMessage);//test
                        //Console.ReadLine();//test

                        cmd2.CommandType = CommandType.Text;
                        cmd2.CommandText = "Update Email_SendEmail_Archive Set SendStatus = 'Fail - App Error' Where SendEmailId = " + SendEmailId + " And SendAttemptDateTime = '" + CurrentDateTime + "'";
                        Status           = 1;
                    }

                    cmd2.ExecuteNonQuery();

                    //Console.WriteLine("done setting email send status for: " + SendEmailId);//test
                }
            }
            catch (Exception ex2)
            {
                String ErrorMessage = ex2.Message;
                //Console.WriteLine(ErrorMessage);//test
                //Console.ReadLine();//test

                cmd2.CommandType = CommandType.Text;
                cmd2.CommandText = "Update Email_SendEmail_Archive Set SendStatus = 'Fail - App Error' Where SendEmailId = " + SendEmailId + " And SendAttemptDateTime = '" + CurrentDateTime + "'";
                cmd2.ExecuteNonQuery();
                Status = 1;

                //Console.WriteLine("done setting email app failure for: " + SendEmailId);//test
            }

            reader.Close();
            conn.Close();
            return(Status);
        }