public static void SendConfirmation(Attendee attendee) { string email = ConfigurationManager.AppSettings["email"]; string password = ConfigurationManager.AppSettings["password"]; MailMessage mail = new MailMessage(); mail.From = new MailAddress(email); SmtpClient smtp = new SmtpClient(); smtp.EnableSsl = true; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.UseDefaultCredentials = false; smtp.Credentials = new NetworkCredential(mail.From.ToString(), password); smtp.Host = "smtp.gmail.com"; mail.To.Add(new MailAddress($"{attendee.Email}")); mail.Subject = "Thanks for registering for Techtober!"; mail.IsBodyHtml = true; string st = $"<div align='center'><img style='max - width: 150px' src='http://i.imgur.com/DSS1t1X.jpg' /><br /><p>Thanks {attendee.FirstName}. Your registration is confirmed! Please have the below QR code ready when you arrive at each event. If no one is able to scan you in, <a href='techtober.azurewebsites.net/events/chooseevent/{attendee.Id}'>click here</a> to check yourself in.</p><h1>{attendee.FirstName} {attendee.LastName}</h1><br /><img src='https://chart.googleapis.com/chart?cht=qr&chl={attendee.QrCode}&chs=100x100' width='200' height='200' /><p><h2>Looking for an event to attend? Check out the Techtober <a href='http://startuparkansas.com/techtober'>events calendar</a> now!</h2></div><footer>Event check-in backend services created for Techtober by <a href='mailto:[email protected]?Subject=Event%20Check-in%20Service' target='_top'>Scott Ferguson</a> in Little Rock, AR.</footer>"; mail.Body = st; //Attachment attach = new Attachment(memoryStream, new ContentType("application/pdf")); //attach.Name = "Check In Badge"; //mail.Attachments.Add(attach); smtp.Port = 587; try { smtp.Send(mail); } catch (SmtpFailedRecipientException ex) { SmtpStatusCode statusCode = ex.StatusCode; if (statusCode == SmtpStatusCode.MailboxBusy || statusCode == SmtpStatusCode.MailboxUnavailable || statusCode == SmtpStatusCode.TransactionFailed) { // wait 5 seconds, try a second time Thread.Sleep(5000); smtp.Send(mail); } else { throw; } } finally { mail.Dispose(); } }
public static void SendConfirmation(Attendee attendee, Event myEvent) { string email = ConfigurationManager.AppSettings["email"]; string password = ConfigurationManager.AppSettings["password"]; MailMessage mail = new MailMessage(); mail.From = new MailAddress(email); SmtpClient smtp = new SmtpClient(); smtp.Port = 587; smtp.EnableSsl = true; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.UseDefaultCredentials = false; smtp.Credentials = new NetworkCredential(mail.From.ToString(), password); smtp.Host = "smtp.gmail.com"; mail.To.Add(new MailAddress($"{attendee.Email}")); mail.Subject = "Thanks for checking in!"; mail.IsBodyHtml = true; string st = $"<div align='center'><img src='http://i.imgur.com/DSS1t1X.jpg' /></div><br /><div align='justified'><p>Your check-in for {myEvent.Name} is confirmed. You have attended {attendee.Events.Count()} events so far. <strong>Thank you</strong> for supporting the Little Rock tech scene!</p></div><footer><sub>Event check-in backend services created for Techtober by <a href='mailto:[email protected]?Subject=Event%20Check-in%20Service' target='_top'>Scott Ferguson</a> in Little Rock, AR.</sub></footer>"; mail.Body = st; smtp.Send(mail); }
private static MemoryStream GenerateBadge(Attendee attendee) { Document doc = new Document(PageSize.POSTCARD, 10, 10, 42, 35); MemoryStream memoryStream = new MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream); doc.Open(); Uri imageLocation = new Uri("http://i.imgur.com/Fqk6Eqk.jpg"); Image logo = Image.GetInstance(imageLocation); logo.Alignment = Element.ALIGN_CENTER; logo.ScaleAbsolute(120f, 155.25f); doc.Add(logo); Paragraph name = new Paragraph($"{attendee.FirstName} {attendee.LastName}"); name.Alignment = Element.ALIGN_CENTER; doc.Add(name); Paragraph email = new Paragraph($"{attendee.Email}"); email.Alignment = Element.ALIGN_CENTER; doc.Add(email); Image qr = Image.GetInstance(attendee.QrCode); qr.Alignment = Element.ALIGN_CENTER; doc.Add(qr); writer.CloseStream = false; doc.Close(); memoryStream.Position = 0; return memoryStream; }
public IHttpActionResult PutAttendee(int id, Attendee attendee) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != attendee.Id) { return BadRequest(); } db.Entry(attendee).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!AttendeeExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public dynamic PostAttendee(Attendee attendee) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Attendees.Add(attendee); db.SaveChanges(); var qrCode = AttendeesController.GenerateCode(attendee.Id); attendee.QrCode = qrCode; db.SaveChanges(); //var memoryStream = GenerateBadge(attendee); try { SendConfirmation(attendee); var response = new HttpResponseMessage(); response.Content = new StringContent($"<html><body><div align='center'><img style='max - width: 150px' src='http://i.imgur.com/DSS1t1X.jpg' /><br /><h1>Thanks {attendee.FirstName}!</h1><h2>You should receive a confirmation email shortly.</h2><p><a href='http://techtober.org/#passport'>Go back</a></div></body></html>"); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return response; //return Ok(); } catch { return BadRequest(); } }