public ActionResult RsvpGuests(Dictionary <String, object>[] guests, Boolean isAttending) { DateTime dateOfRsvp = DateTime.Now; DatabaseAction(conn => { List <Business.Invite> invites = new List <Business.Invite>(); foreach (Dictionary <String, object> guestData in guests) { Int32 inviteId = (Int32)guestData["inviteId"]; Int32 guestId = (Int32)guestData["guestId"]; Business.Invite invite = invites.SingleOrDefault(p => p.Id == inviteId); if (invite == null) { invite = new Business.Invite(conn, inviteId); invites.Add(invite); } Business.Guest guest = invite.Guests.Single(p => p.Id == guestId); guest.IsAttending = isAttending; guest.DateOfRsvp = dateOfRsvp; } foreach (Business.Invite invite in invites) { invite.Save(conn); } }); return(Json(dateOfRsvp)); }
public ActionResult Messages(Int32 inviteId) { Business.Invite invite = DatabaseFunction <Business.Invite>(conn => { return(new Business.Invite(conn, inviteId)); }); return(View(invite)); }
public ActionResult DeleteInvite(Int32 inviteId) { DatabaseAction(conn => { Business.Invite invite = new Business.Invite(conn, inviteId); invite.Delete(conn); }); return(Json()); }
public ActionResult SendInviteEmail(Int32 inviteId) { DatabaseAction(conn => { Business.Invite invite = new Business.Invite(conn, inviteId); invite.ResetPassword(); invite.Save(conn); SendInviteEmail(invite); }); return(Json()); }
public ActionResult Invite(Int32?inviteId, String returnAction) { Business.Invite invite; if (inviteId.HasValue) { invite = DatabaseFunction <Business.Invite>(conn => { return(new Business.Invite(conn, inviteId.Value)); }); } else { invite = new Business.Invite(); } return(View(new AdminInviteModel(invite) { ReturnAction = returnAction })); }
public ActionResult SaveInvite(Int32 inviteId, String emailAddress, Boolean includesCeremony, Boolean reserveSandholeRoom, Boolean isAdmin, String guests, InviteEmailType emailType) { Boolean result = true; String errorMessage = String.Empty; emailAddress = emailAddress.Trim(); DatabaseAction(conn => { if (!new EmailAddressAttribute().IsValid(emailAddress)) { result = false; errorMessage = "Please enter a valid email address."; return; } if (Business.Invite.GetInvites(conn).Any(p => p.Id != inviteId && p.EmailAddress.ToLower() == emailAddress.ToLower())) { result = false; errorMessage = "There is already another invite using that email address."; return; } Business.Invite invite = new Business.Invite(); if (inviteId != -1) { invite = new Business.Invite(conn, inviteId); } invite.EmailAddress = emailAddress; invite.IncludesCeremony = includesCeremony; invite.ReserveSandholeRoom = reserveSandholeRoom; invite.IsAdmin = isAdmin; JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary <String, object>[] guestsData = (Dictionary <String, object>[])serializer.Deserialize(guests, typeof(Dictionary <String, object>[])); invite.Guests.Clear(); foreach (Dictionary <String, object> guestData in guestsData) { Int32 guestId = (Int32)guestData["guestId"]; String forename = (String)guestData["forename"]; String surname = (String)guestData["surname"]; Boolean?isAttending = (Boolean?)guestData["isAttending"]; DateTime?dateOfRsvp = guestData["dateOfRsvp"] == null ? (DateTime?)null : DateTime.Parse((String)guestData["dateOfRsvp"]); Boolean isChild = (Boolean)guestData["isChild"]; Boolean isVegetarian = (Boolean)guestData["isVegetarian"]; Boolean canBringPlusOne = (Boolean)guestData["canBringPlusOne"]; Int32?tableId = guestData["tableId"] == null ? (Int32?)null : (Int32)guestData["tableId"]; Int32?roomId = guestData["roomId"] == null ? (Int32?)null : (Int32)guestData["roomId"]; String notes = (String)guestData["notes"]; Business.Guest guest = new Business.Guest(guestId, forename, surname, isAttending, dateOfRsvp, isChild, isVegetarian, canBringPlusOne, tableId, roomId, notes); invite.Guests.Add(guest); } invite.Save(conn); switch (emailType) { case InviteEmailType.Invite: SendInviteEmail(invite); break; case InviteEmailType.Update: SendUpdateInviteEmail(invite); break; } }); return(Json(new { result = result, errorMessage = errorMessage })); }