// GET: EnrollmentAdmin/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Enrollment enrollment = db.Enrollments.Find(id);

            if (enrollment == null)
            {
                return(HttpNotFound());
            }

            EnrollmentAdminViewModel model = new EnrollmentAdminViewModel()
            {
                ID               = enrollment.ID,
                ChildFirstName   = enrollment.ChildFirstName,
                ChildLastName    = enrollment.ChildLastName,
                ChildBirthDate   = enrollment.ChildBirthDate,
                HasSpecialNeed   = enrollment.HasSpecialNeed,
                SpecialNeedNotes = enrollment.SpecialNeedNotes,
                ChildNotes       = enrollment.ChildNotes,
                Notes            = enrollment.Notes,
                UserID           = enrollment.User.Id,
                MembershipID     = enrollment.Membership.ID,
                StartDate        = enrollment.StartDate,
                ExpirationDate   = enrollment.ExpirationDate
            };

            ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName", model.UserID);
            ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name", model.MembershipID);
            return(View(model));
        }
        public ActionResult Create([Bind(Include = "UserID,MembershipID,ChildFirstName,ChildLastName,ChildBirthDate,HasSpecialNeed,SpecialNeedNotes,ChildNotes,Notes")] EnrollmentAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var currentUser = userManager.FindById(User.Identity.GetUserId());

                // Verifying if the input data exist
                var selectedUser = db.Users.Find(model.UserID);
                if (selectedUser == null)
                {
                    ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName");
                    ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name");
                    return(View(model));
                }
                var selectedMembership = db.Memberships.Find(model.MembershipID);
                if (selectedMembership == null)
                {
                    ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName");
                    ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name");
                    return(View(model));
                }

                // Add enrollment
                var enrollment = new Enrollment()
                {
                    User             = selectedUser,
                    Membership       = selectedMembership,
                    ChildFirstName   = model.ChildFirstName,
                    ChildLastName    = model.ChildLastName,
                    ChildBirthDate   = model.ChildBirthDate,
                    HasSpecialNeed   = model.HasSpecialNeed,
                    SpecialNeedNotes = model.SpecialNeedNotes,
                    ChildNotes       = model.ChildNotes,
                    IsActive         = false,
                    RenewalNumber    = 0,
                    CreationDate     = DateTime.Now,
                    CreationUserName = currentUser.UserName,
                    ModifDate        = DateTime.Now,
                    ModifUserName    = currentUser.UserName,
                    Notes            = model.Notes
                };

                db.Enrollments.Add(enrollment);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName");
            ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name");
            return(View(model));
        }
        public ActionResult Edit([Bind(Include = "ID,UserID,MembershipID,ChildFirstName,ChildLastName,ChildBirthDate,HasSpecialNeed,SpecialNeedNotes,ChildNotes,StartDate,ExpirationDate,Notes")] EnrollmentAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var currentUser = userManager.FindById(User.Identity.GetUserId());

                // Verifying if the user input exists
                var selectedUser = db.Users.Find(model.UserID);
                if (selectedUser == null)
                {
                    ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName");
                    ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name");
                    return(View(model));
                }
                // Verifying if the membership input exists
                var selectedMembership = db.Memberships.Find(model.MembershipID);
                if (selectedMembership == null)
                {
                    ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName");
                    ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name");
                    return(View(model));
                }

                // Verifying if the enrollment exists
                var enrollment = db.Enrollments.Find(model.ID);
                if (enrollment != null)
                {
                    enrollment.User             = selectedUser;
                    enrollment.Membership       = selectedMembership;
                    enrollment.ChildFirstName   = model.ChildFirstName;
                    enrollment.ChildLastName    = model.ChildLastName;
                    enrollment.ChildBirthDate   = model.ChildBirthDate;
                    enrollment.HasSpecialNeed   = model.HasSpecialNeed;
                    enrollment.SpecialNeedNotes = model.SpecialNeedNotes;
                    enrollment.ChildNotes       = model.ChildNotes;
                    enrollment.ModifDate        = DateTime.Now;
                    enrollment.ModifUserName    = currentUser.UserName;
                    enrollment.Notes            = model.Notes;
                    enrollment.StartDate        = model.StartDate;
                    enrollment.ExpirationDate   = model.ExpirationDate;
                    db.Entry(enrollment).State  = EntityState.Modified;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            ViewBag.UserList       = new SelectList(db.Users.ToList(), "ID", "UserName");
            ViewBag.MembershipList = new SelectList(db.Memberships.ToList(), "ID", "Name");
            return(View(model));
        }