/// <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(); } }
/// <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); }