Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        public ActionResult Messages(Int32 inviteId)
        {
            Business.Invite invite = DatabaseFunction <Business.Invite>(conn =>
            {
                return(new Business.Invite(conn, inviteId));
            });

            return(View(invite));
        }
Ejemplo n.º 3
0
        public ActionResult DeleteInvite(Int32 inviteId)
        {
            DatabaseAction(conn =>
            {
                Business.Invite invite = new Business.Invite(conn, inviteId);
                invite.Delete(conn);
            });

            return(Json());
        }
Ejemplo n.º 4
0
        public ActionResult SendInviteEmail(Int32 inviteId)
        {
            DatabaseAction(conn =>
            {
                Business.Invite invite = new Business.Invite(conn, inviteId);
                invite.ResetPassword();
                invite.Save(conn);

                SendInviteEmail(invite);
            });

            return(Json());
        }
Ejemplo n.º 5
0
        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
            }));
        }
Ejemplo n.º 6
0
        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
            }));
        }