Ejemplo n.º 1
0
        /// <summary>
        /// send mail messages
        /// </summary>
        /// <param name="campaigns"></param>
        public void SendMessage(Campaigns campaigns)
        {
            SendGridMailer obj      = new SendGridMailer();
            MailComposer   composer = new MailComposer();

            try
            {
                UpdateExecutedDate(campaigns.IdentifierCampaign);
                campaign = new CampaignDetails();
                subs     = new List <SubscriberDetails>();
                campaign = getCampaignDetails(campaigns.CampaignID);
                subs     = new List <SubscriberDetails>();
                subs     = getSubscriberDetails(campaigns.IdentifierCampaign);
                string content = null;
                foreach (var email in subs)
                {
                    content = composer.ComposeHTMLMail(campaign.EmailContent, email.FirstName + " " + email.LastName, email.IdentifierSubscriber);
                    obj.SendHtmlMail(email.EmailAddress, email.FirstName + " " + email.LastName, campaign.FromEmail, campaign.FromName, campaign.EmailSubject, content);
                }
                UpdateMailStatus(campaigns.IdentifierCampaign);
                removeCampaign(campaigns.IdentifierCampaign);
            }
            catch (SqlException ex)
            {
                exp = new EMTException((int)EMTException.ErorrTypes.SqlExceptions, ex.InnerException.Message, ex.StackTrace, EMTException.ErorrTypes.SqlExceptions.ToString());
                exp.LogException();
            }
            catch (Exception ex)
            {
                exp = new EMTException((int)EMTException.ErorrTypes.others, ex.InnerException.Message, ex.StackTrace, EMTException.ErorrTypes.SqlExceptions.ToString());
                exp.LogException();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get Campaign Details
        /// </summary>
        /// <param name="campaignId"></param>
        /// <returns></returns>
        private CampaignDetails getCampaignDetails(int campaignId)
        {
            try
            {
                using (SqlConnection con = DataHelper.CreateOpenConnection())
                {
                    DataSet ds = new DataSet();
                    campaign = new CampaignDetails();
                    ds       = DataHelper.ExecuteDataSet(con, CommandType.StoredProcedure, "usp_getemailcontent", new SqlParameter[] { new SqlParameter("@campaignId", campaignId) });

                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow row in ds.Tables[0].Rows)
                        {
                            campaign.Cid          = (int)row["Cid"];
                            campaign.Name         = row["Name"].ToString();
                            campaign.EmailContent = row["EmailContent"].ToString();
                            campaign.EmailSubject = row["EmailSubject"].ToString();
                            campaign.FromEmail    = row["FromEmail"].ToString();
                            campaign.ListId       = (int)row["ListId"];
                            campaign.FromName     = row["FromName"].ToString();
                            campaign.CTypeId      = (int)row["CTypeId"];

                            if (row["ScheduleCampaign"].ToString() == "")
                            {
                                var MyReader = new AppSettingsReader();
                                campaign.ScheduleCampaign = Convert.ToInt32(MyReader.GetValue("timeinterval", typeof(string)));
                            }
                            else
                            {
                                campaign.ScheduleCampaign = (int)row["ScheduleCampaign"];
                            }
                            if (row["noOfEmailSendPerInterval"].ToString() == "")
                            {
                                var MyReader = new AppSettingsReader();
                                campaign.noOfEmailSendPerInterval = Convert.ToInt32(MyReader.GetValue("NoOfSubscriber", typeof(string)));
                            }
                            else
                            {
                                campaign.noOfEmailSendPerInterval = (int)row["noOfEmailSendPerInterval"];
                            }
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                exp = new EMTException((int)EMTException.ErorrTypes.SqlExceptions, ex.InnerException.Message, ex.StackTrace, EMTException.ErorrTypes.SqlExceptions.ToString());
                exp.LogException();
            }
            catch (Exception ex)
            {
                exp = new EMTException((int)EMTException.ErorrTypes.others, ex.InnerException.Message, ex.StackTrace, EMTException.ErorrTypes.SqlExceptions.ToString());
                exp.LogException();
            }
            return(campaign);
        }