public ActionResult Add(int? id)
 {
     RsvpViewModel vm;
     if (id != null)
     {
         var m = new mongo().GetItemById<Rsvp>(id);
         vm = new RsvpViewModel(m);
     }
     else
     {
         vm = new RsvpViewModel();
         vm.Primary.IsEditable = true;
         vm.PlusOne.IsEditable = true;
     }
     return View("Add", vm);
 }
 public ActionResult Index(RsvpViewModel vm)
 {
     try
     {
         if (vm.Id != null)
         {
             Rsvp.Retrieve(vm).Save();
             return View("ThankYou");
         }
         else
         {
             ViewBag.Error = true;
             return View("Index", vm);
         }
     }
     catch
     {
         ViewBag.Error = true;
         return View("Index", vm);
     }
 }
 public ActionResult Add(RsvpViewModel vm)
 {
     new Rsvp(vm).Create();
     return RedirectToAction("Add");
 }
 public ActionResult Update(int? id)
 {
     var model = new mongo().FindOne<Rsvp>(i => i.Id == id);
     var vm = new RsvpViewModel(model);
     return (vm != null) ? View("Index", vm) : View("Index");
 }
        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 }));
        }
Beispiel #6
0
 public ActionResult Add(RsvpViewModel vm)
 {
     new Rsvp(vm).Create();
     return(RedirectToAction("Add"));
 }