public string _AddNote(int? id, DateTime? date, string note)
        {
            JavaScriptSerializer s = new JavaScriptSerializer();
            if (id != null)
            {
                var reservation = db.Reservations.Find(id);
                if (reservation != null)
                {
                    try
                    {
                        ReservationNote n = new ReservationNote();
                        n.created = date ?? DateTime.Now;
                        n.note = note;
                        n.createdBy = Helpers.Helpers.GetUser(User.Identity).loginName;
                        n.reservationId = reservation.reservationId;
                        reservation.ReservationNotes.Add(n);
                        Log l = new Log();
                        l.userId = Helpers.Helpers.GetUser(User.Identity).loginName;
                        l.action = "Add Note";
                        l.data = s.Serialize(n);
                        db.Logs.Add(l);
                        db.SaveChanges();
                        return s.Serialize(new { @class = "success", message = "Note saved successfully" });
                    }
                    catch (Exception ex)
                    {
                        return s.Serialize(new { @class = "alert", message = ex.Message.ToString() });
                    }
                }
            }
            return null;

        }
        public String AsyncCreate(Reservation reservation, List<int> ReservationLocation, List<int> ReservationOption, string NewNote)
        {
            try 
            {
                var returnPath = TempData["ReturnPath"] ?? Request.UrlReferrer;

                if (ReservationLocation == null || ReservationLocation.Count() == 0)
                {
                    return s.Serialize(new { @class = "warning", message = "At least one location is required" });
                }
                if (reservation.eventId == 0)
                {
                    return s.Serialize(new { @class = "warning", message = "Event must already exist" });
                }
                var ev = db.Events.Find(reservation.eventId);
                if (ev == null)
                {
                    return s.Serialize(new { @class = "warning", message = "Event must already exist" });
                }

                foreach (var location in ReservationLocation)
                {
                    var loc = db.Locations.Find(location);
                    reservation.Locations.Add(loc);
                }
                if (ReservationOption != null)
                {
                    foreach (var option in ReservationOption)
                    {
                        var opt = db.Options.Find(option);
                        reservation.Options.Add(opt);
                    }
                }
                if (NewNote != null && NewNote != string.Empty)
                {
                    var note = new ReservationNote { note = NewNote, createdBy = reservation.createdBy, created = reservation.created.Value };
                    reservation.ReservationNotes.Add(note);
                }

                db.Reservations.Add(reservation);
                //db.Logs.Add(Helpers.Helpers.WriteLog(User, "CreateReservationFromExistingEvent", reservation));
                db.SaveChanges();
                if (returnPath != null)
                {
                    return s.Serialize(new { @class = "success", message = "Reservation Created", returnpath = returnPath });
                }
                return s.Serialize(new { @class = "success", message = "Reservation Created" });
            }
            catch (Exception ex)
            {
                return s.Serialize(new { @class = "warning", message = ex.Message.ToString() });
            }
        }