public void Tweet(Indulgence indulgence) { _logger.DebugFormat("tweet {0}", indulgence.Confession); string status = ""; if (!string.IsNullOrWhiteSpace(indulgence.Name)) { status = string.Format("Bless you {0}, your sin has been absolved {1}/indulgence/{2}", indulgence.Name, ConfigurationManager.AppSettings["WebsiteHostName"], indulgence.Guid); } else { status = string.Format("A sin has been absolved {0}/indulgence/{1}", ConfigurationManager.AppSettings["WebsiteHostName"], indulgence.Guid); } Auth.SetUserCredentials(ConfigurationManager.AppSettings["Twitter_ConsumerKey"], ConfigurationManager.AppSettings["Twitter_ConsumerSecret"], ConfigurationManager.AppSettings["Twitter_Token"], ConfigurationManager.AppSettings["Twitter_TokenSecret"]); try { Tweetinvi.Tweet.PublishTweet(status); } catch (Exception ex) { _logger.Warn("Could not send tweet", ex); } }
public ActionResult Index(string confession) { // store the confession as a sin var sin = new Sin() { Content = confession, Source = "JC" }; MvcApplication.CurrentSession.Store(sin); Indulgence con = new Indulgence() { Confession = confession.Truncate(150), DateConfessed = DateTime.Now, IsBlessed = false, IsConfession = true, SinId = sin.Id, Tweeted = false, Name = "Anonymous" }; MvcApplication.CurrentSession.Store(con); MvcApplication.CurrentSession.SaveChanges(); return(RedirectToAction("Confess", new { id = con.Id.IdValue() })); }
private static void SendIndulgenceEmail(Indulgence indulgence, string indulgenceFilePath) { MailMessage message = new MailMessage(); message.From = new MailAddress(ConfigurationManager.AppSettings["emailFromAddress"], "IndulgeMe.cc"); message.To.Add(new MailAddress(indulgence.DonorEmailAddress, indulgence.Name)); var templateDoc = XDocument.Load(HostingEnvironment.MapPath("~/content/emailTemplates/indulgenceEmail.xml")); string subject = templateDoc.Element("email").Element("subject").Value; string textBody = templateDoc.Element("email").Element("body").Element("text").Value; string htmlBody = templateDoc.Element("email").Element("body").Element("html").Value; subject = subject .Replace("@DonorName", indulgence.Name) .Replace("@CharityName", indulgence.CharityName); textBody = textBody .Replace("@DonorName", indulgence.Name) .Replace("@CharityName", indulgence.CharityName); htmlBody = htmlBody .Replace("@DonorName", indulgence.Name) .Replace("@CharityName", indulgence.CharityName); message.Subject = subject; message.Body = textBody; message.Attachments.Add(new Attachment(indulgenceFilePath)); SmtpClient smtp = new SmtpClient(); smtp.Port = int.Parse(ConfigurationManager.AppSettings["smtpPort"]); smtp.Host = ConfigurationManager.AppSettings["smtpServer"]; smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["smtpUsername"], ConfigurationManager.AppSettings["smtpPassword"]); smtp.EnableSsl = true; smtp.Send(message); }
static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); var ig = new btwc.IndulgenceGeneratoriTextSharp(new FileSystemStorage()); try { var indulgence = new Indulgence() { Id = 1, Confession = Text, Name = "Andrew", AmountDonated = 200, CharityName = "test charity", DateConfessed = DateTime.Now }; ig.Generate(indulgence, Path.Combine(Environment.CurrentDirectory, "fonts"), Path.Combine(Environment.CurrentDirectory, "content"), "parchment3", "1.pdf", "1_1.png", "1_2.png", "1_3.png", "1_4.png"); } catch (Exception ex) { Console.WriteLine(ex.Message); } sw.Stop(); Console.WriteLine(string.Format("Took {0}", sw.Elapsed)); }
public ActionResult BeginConfession(string confession) { // store the confession as a sin Indulgence indulgence = null; var sin = new Sin() { Content = confession, Source = "JC", Guid = Guid.NewGuid() }; indulgence = new Indulgence() { Confession = confession.Truncate(150), DateConfessed = DateTime.Now, IsBlessed = false, IsConfession = true, Sin = sin, Tweeted = false, Name = "Anonymous", Guid = Guid.NewGuid(), BackgroundImageName = "parchment3" }; _indulgeMeService.SaveIndulgence(indulgence); return(RedirectToAction("Confess", new { guid = indulgence.Guid })); }
public void EmailTest() { var indulgence = new Indulgence() { Name = "andrew myhre", CharityName = "test charity", DonorEmailAddress = "*****@*****.**" }; indulgenceEmailer.Send(indulgence, @"C:\workspace\git\BlessTheWeb\BlessTheWeb\Content\indulgences\6145.pdf"); }
public void GenerateIndulgence(Indulgence indulgence, string fontsDirectory, string contentDirectory) { _indulgenceGenerator.Generate(indulgence, fontsDirectory, contentDirectory, indulgence.BackgroundImageName, string.Format("{0}{1}.pdf", ConfigurationManager.AppSettings["IndulgencePdfRelativePath"], indulgence.Guid), string.Format("{0}{1}_1.png", ConfigurationManager.AppSettings["IndulgenceThumbnailRelativePath"], indulgence.Guid), string.Format("{0}{1}_2.png", ConfigurationManager.AppSettings["IndulgenceThumbnailRelativePath"], indulgence.Guid), string.Format("{0}{1}_3.png", ConfigurationManager.AppSettings["IndulgenceThumbnailRelativePath"], indulgence.Guid), string.Format("{0}{1}_4.png", ConfigurationManager.AppSettings["IndulgenceThumbnailRelativePath"], indulgence.Guid)); }
public void Send(Indulgence indulgence, string indulgenceFilePath) { MvcApplication.EmailFacade.AddEmailToQueue( new string[] { indulgence.DonorEmailAddress }, "IndulgenceCreated", new Dictionary <string, string>() { { "DonorName", indulgence.Name }, { "CharityName", indulgence.CharityName }, { "IndulgenceId", indulgence.Id }, { "ServerAuthority", "http://" + HttpContext.Current.Request.Url.Authority } }, new FileInfo[] { new FileInfo(indulgenceFilePath) }); }
public ActionResult Absolve(int id) { var sin = MvcApplication.CurrentSession.Load <Sin>("sins/" + id.ToString()); var con = new Indulgence() { Confession = sin.Content.Truncate(250), DateConfessed = DateTime.Now, IsBlessed = false, IsConfession = false, SinId = sin.Id }; MvcApplication.CurrentSession.Store(con); MvcApplication.CurrentSession.SaveChanges(); ViewData["cid"] = con.Id.IdValue(); return(View("Absolve", con)); }
public async Task Send(Indulgence indulgence, string indulgenceFilePath) { dynamic sg = new SendGrid.SendGridAPIClient(_sendGridApiKey); var fromAddress = ConfigurationManager.AppSettings["SendGridFromAddress"]; var fromName = ConfigurationManager.AppSettings["SendGridFromName"]; var indulgenceLink = string.Format("{0}/indulgence/pdf/{1}", ConfigurationManager.AppSettings["WebsiteHostName"], indulgence.Guid); string data = @"{ 'content': [ { 'type': 'text/html', 'value': '<html><p>Hello good person,</p><p>Please accept this *genuine plenary indulgence. Be sure to present it when you are received in purgatory.</p><p><a href=\'" + indulgenceLink + @"\'>Click here for the PDF version</a></p><p>Send this to your friends, gloat about it, and encourage them to perform good acts too!</p><p><small>*not endorsed by the Catholic church</small></p></html>' } ], 'from': { 'email': '" + fromAddress + @"', 'name': '" + fromName + @"' }, 'personalizations': [ { 'to': [{ 'email': '" + indulgence.DonorEmailAddress + @"', 'name': '" + (string.IsNullOrWhiteSpace(indulgence.DonorEmailAddress) ? "" : indulgence.DonorEmailAddress) + @"' }] } ], 'reply_to': { 'email': '" + fromAddress + @"', 'name': '" + fromName + @"' }, 'subject': 'Bless you! Please accept your indulgence' }"; Object json = JsonConvert.DeserializeObject <Object>(data); data = json.ToString(); dynamic response = await sg.client.mail.send.post(requestBody : data); _log.InfoFormat("sent an email to " + indulgence.DonorEmailAddress); _log.InfoFormat("response code: {0}, result: {1}, headers: {2}", response.StatusCode, response.Body.ReadAsStringAsync().Result, response.Headers.ToString()); }
public Indulgence CreateIndulgenceForSin(string guid) { var sin = _session.CreateCriteria <Sin>() .Add(Restrictions.Eq("Guid", Guid.Parse(guid))) .UniqueResult <Sin>(); var ind = new Indulgence() { Confession = sin.Content.Substring(0, sin.Content.Length <= 250 ? sin.Content.Length : 250), DateConfessed = DateTime.Now, IsBlessed = false, IsConfession = false, Sin = sin }; _session.Save(ind); _session.Flush(); return(ind); }
private static void SendTweet(Indulgence indulgence) { logger.DebugFormat("tweet {0}", indulgence.Confession); string status = ""; status = string.Format("Bless you {0}, your sin has been absolved http://{1}/indulgences/{2}", indulgence.Name, ConfigurationManager.AppSettings["WebsiteUrlAuthority"], indulgence.Id); try { /*FluentTwitter * .CreateRequest() * .AuthenticateWith(consumerKey, consumerSecret, token, tokenSecret) * .Statuses() * .Update(status) * .AsJson() * .Request();*/ } catch (Exception ex) { logger.Warn("Could not send tweet", ex); } }
public byte[] GetIndulgencePdf(Indulgence indulgence) { string pdfFilename = string.Format("{0}{1}.pdf", ConfigurationManager.AppSettings["IndulgencePdfRelativePath"], indulgence.Guid); return(_fileStorage.Get(pdfFilename)); }
public void SaveIndulgence(Indulgence indulgence) { _session.Save(indulgence); _session.Save(indulgence.Sin); _session.Flush(); }
public void Tweet(Indulgence indulgence) { _tweeter.Tweet(indulgence); }
public byte[] GetIndulgenceImage(Indulgence indulgence, int size) { string imageFileName = string.Format("{0}{1}_{2}.png", ConfigurationManager.AppSettings["IndulgenceThumbnailRelativePath"], indulgence.Guid, size); return(_fileStorage.Get(imageFileName)); }