private void WriteHtml(IEnumerable<Car> values, string subject) { var strBldr = new StringBuilder(); var strWriter = new StringWriter(strBldr); var writer = new HtmlTextWriter(strWriter); writer.RenderBeginTag(HtmlTextWriterTag.Html); // <head> writer.RenderBeginTag(HtmlTextWriterTag.Head); writer.AddAttribute("type", "text/css"); writer.RenderBeginTag(HtmlTextWriterTag.Style); writer.Write("table { border-collapse: separate; }"); writer.Write("border-spacing: 0 5px; }"); writer.RenderEndTag(); // </head> writer.RenderEndTag(); // <body> writer.RenderBeginTag(HtmlTextWriterTag.Body); writer.AddStyleAttribute("width", " 100%"); writer.RenderBeginTag(HtmlTextWriterTag.Table); //Main Table writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); var counter = 0; foreach (var val in values) { if(val.EmailSent) continue; writer.AddStyleAttribute("width", " 100%"); writer.AddStyleAttribute("background-color", counter % 2 == 0 ? " #3399FF" : " #999966"); writer.RenderBeginTag(HtmlTextWriterTag.Table); //writer.RenderBeginTag(HtmlTextWriterTag.Tr); //writer.RenderBeginTag(HtmlTextWriterTag.Td); //writer.Write(" "); //writer.RenderEndTag(); //writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddStyleAttribute("width", " 100%"); writer.RenderBeginTag(HtmlTextWriterTag.Table); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(val.DateIn.ToString("MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture)); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Td); // To do writer.Write(_feeds.Where(x => x.Id == val.FeedId).FirstOrDefault().FeedCity); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Td); // To Do writer.Write(_feeds.Where(x => x.Id == val.FeedId).FirstOrDefault().FeedState); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(val.Title); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(val.Description); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Href, val.Link); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(val.Link); writer.RenderEndTag(); //A writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); counter++; } writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); //End Main Table // </body> writer.RenderEndTag(); // </html> writer.RenderEndTag(); var html = strBldr.ToString(); var email = new Email { EmailGeneratedDate = DateTime.Now, EmailMessage = html, EmailSent = false, EmailSubject = subject }; // Logger.Debug(html); int id = DataAccess.InsertEmail(email); foreach (var v in values) { var batch = new EmailBatch { EmailId = id, CarId = v.Id }; DataAccess.InsertEmailBatch(batch); DataAccess.UpdateMailSent(v.Id); v.EmailSent = true; } }
public int InsertEmail(Email email) { var dynParam = new DynamicParameters(new { EmailGeneratedDate = email.EmailGeneratedDate, EmailSubject = email.EmailSubject, EmailMessage = email.EmailMessage, EmailSent = email.EmailSent }); dynParam.Add("@InsertedId", dbType: DbType.Int32, direction: ParameterDirection.Output); conn.Execute("usp_Email_Create", dynParam, commandType: CommandType.StoredProcedure); return dynParam.Get<int>("@InsertedId"); }