public async Task<ActionResult> Rsvp(RsvpViewModel model) { if (!string.IsNullOrWhiteSpace(model.Website) || model.CaptchaPass == null || model.CaptchaPass != "KALASHIAN_NOT_ROBOT") { return Json(new { status = 0, error = "Only humans can submit this form." }); } using (NickBeckyWedding db = new NickBeckyWedding()) using (DbContextTransaction dbTrans = db.Database.BeginTransaction()) { RSVP rsvp = new RSVP { ArrivalDate = model.ArrivalDate, PrimaryEmail = model.EmailAddress, Attending = model.Attending }; db.RSVPs.Add(rsvp); try { await db.SaveChangesAsync(); } catch (Exception ex) { dbTrans.Rollback(); return Json(new { status = 0, error = ex.Message }); } RSVPAttendee primeAttendee = new RSVPAttendee { EmailAddress = model.EmailAddress, Name = model.Name, RSVP_ID = rsvp.ID }; db.RSVPAttendees.Add(primeAttendee); foreach (RSVPAttendee dbAttendee in model.Attendees.Where(attendee => attendee.EmailAddress != null).Select(attendee => new RSVPAttendee { EmailAddress = attendee.EmailAddress, Name = attendee.Name, RSVP_ID = rsvp.ID })) { db.RSVPAttendees.Add(dbAttendee); } try { await db.SaveChangesAsync(); dbTrans.Commit(); } catch (Exception ex) { dbTrans.Rollback(); return Json(new { status = 0, error = ex.Message }); } await SendRsvpEmailAsync(model); } return Json(new { status = 1 }); }
public async Task<ActionResult> GuestBook(GuestBookMessageViewModel model) { if (!string.IsNullOrWhiteSpace(model.Website) || model.CaptchaPass == null || model.CaptchaPass != "KALASHIAN_NOT_ROBOT") { return Json(new { status = 0, error = "Only humans can submit this form." }); } using (NickBeckyWedding db = new NickBeckyWedding()) { GuestBookMessage guestBook = new GuestBookMessage { Name = model.Name, Message = model.Message, SignedDate = DateTime.Now }; db.GuestBookMessages.Add(guestBook); try { await db.SaveChangesAsync(); } catch (Exception ex) { return Json(new { status = 0, error = ex.Message }); } } return Json(new { status = 1 }); }