示例#1
0
 public ActionResult Edit([Bind(Include = "GymClassID,ClassName,Description")] GymClass gymClass)
 {
     if (ModelState.IsValid)
     {
         db.Entry(gymClass).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(gymClass));
 }
        public ActionResult Create([Bind(Include = "Id,Name,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                db.GymClasses.Add(gymClass);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(gymClass));
        }
示例#3
0
        public async Task <IActionResult> Create([Bind("Id,Name,StartDate,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                _context.Add(gymClass);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(gymClass));
        }
        public async Task <IActionResult> Create([Bind("Id,Name,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                _unitOfWork.GymClasses.Add(gymClass);
                await _unitOfWork.CompleteAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(gymClass));
        }
示例#5
0
        public async Task <IActionResult> CreateGymClass([Bind("GymClassId,Name,Trainer,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                _context.Add(gymClass);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index", "Home"));
            }
            return(View(gymClass));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GymClass gymClass = db.GymClasses.Find(id);

            if (gymClass == null)
            {
                return(HttpNotFound());
            }
            return(View(gymClass));
        }
        // GET: GymClasses/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            GymClass gymClass = await _unitOfWork.GymClasses.GetClassWithAttendingMembersAsync(id);

            if (gymClass == null)
            {
                return(NotFound());
            }

            return(View(gymClass));
        }
        public ActionResult Delete(int?id)
        {
            ViewBag.Title = "Delete gymclass";
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GymClass gymClass = db.GymClasses.Find(id);

            if (gymClass == null)
            {
                return(HttpNotFound());
            }
            return(View(gymClass));
        }
示例#9
0
        public async Task <IActionResult> Create([Bind("Id,Name,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                ouw.GymClassRepository.Add(gymClass);
                await ouw.CompleteAsync();

                if (Request.IsAjax())
                {
                    return(PartialView("GymClassPartial", gymClass)); //
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(gymClass));
        }
示例#10
0
        public async Task <IActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            GymClass gymClass = await unitOfWork.GymClasses.GetAsync(id);

            if (gymClass == null)
            {
                return(NotFound());
            }

            return(View(gymClass));
        }
示例#11
0
        public ActionResult BookingToggle(int id)
        {
            GymClass        gymClass    = db.GymClasses.Where(gym => gym.Id == id).FirstOrDefault();
            ApplicationUser currentUser = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

            if (gymClass.AttendingMembers.Contains(currentUser))
            {
                gymClass.AttendingMembers.Remove(currentUser);
            }
            else
            {
                gymClass.AttendingMembers.Add(currentUser);
            }
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#12
0
        // GET: GymClass/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GymClass           dbClass  = db.GymClass.Find(id);
            ClassBookingDetail gymClass = dbClass.ToBookingViewModel(false);

            if (gymClass == null)
            {
                return(HttpNotFound());
            }
            gymClass.Types = db.GymClassTypes.OrderBy(t => t.Name).ToList();
            return(View(gymClass));
        }
示例#13
0
 public ActionResult Delete(int id)
 {
     Tex.Log("Delete called" + id.ToString());
     try {
         GymClass gymClass = db.GymClass.Find(id);
         db.GymClass.Remove(gymClass);
         var bookings = db.MemberClassBookings.Where(cb => cb.GymClassId == id).ToList();
         db.MemberClassBookings.RemoveRange(bookings);
         db.SaveChanges();
         Tex.Log("returning");
         return(Json("", JsonRequestBehavior.AllowGet));
     } catch (Exception ex) {
         Tex.Dump(ex, "Exception GymClassController/delete");
         throw;
     }
 }
        public ActionResult BookingToggle(int id)
        {
            GymClass        CurrentClass = db.GymClasses.Where(g => g.Id == id).FirstOrDefault();
            ApplicationUser CurrentUser  = db.Users.Where(g => g.UserName == User.Identity.Name).FirstOrDefault();

            if (CurrentClass.AttendingMembers.Contains(CurrentUser))
            {
                CurrentClass.AttendingMembers.Remove(CurrentUser);
                db.SaveChanges();
            }
            else
            {
                CurrentClass.AttendingMembers.Add(CurrentUser);
                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
示例#15
0
        public ActionResult BookingToggle(int id)
        {
            GymClass        currentClass = db.GymClasses.Where(g => g.Id == id).FirstOrDefault();
            ApplicationUser currentUser  = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

            if (currentClass.AttendingMembers.Contains(currentUser))
            {
                currentClass.AttendingMembers.Remove(currentUser);
                db.SaveChanges();
            }
            else
            {
                currentClass.AttendingMembers.Add(currentUser);
                db.SaveChanges();
            }

            return(RedirectToAction("Details", new { id = id }));
        }
        // GET: GymClasses/Details/5
        public ActionResult Details(int?id)
        {
            ViewBag.Title = "Gymclass, details";
            var role = new Role();

            ViewBag.Roles = role;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GymClass gymClass = db.GymClasses.Find(id);

            if (gymClass == null)
            {
                return(HttpNotFound());
            }
            return(View(gymClass));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,StartDate,Duration,Description")] GymClass gymClass)

        {
            if (id != gymClass.Id)

            {
                return(NotFound());
            }



            if (ModelState.IsValid)

            {
                try

                {
                    unitOfWork.gymClassesRepository.Update(gymClass);

                    await unitOfWork.CompleteAsync();
                }

                catch (DbUpdateConcurrencyException)

                {
                    if (!GymClassExists(gymClass.Id))

                    {
                        return(NotFound());
                    }

                    else

                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index)));
            }

            return(View(gymClass));
        }
示例#18
0
        public async Task <IActionResult> Create([Bind("Id,Name,StartDate,Duration,Description")] CreateGymClassViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var gymClass = new GymClass
                {
                    Id          = viewModel.Id,
                    Name        = viewModel.Name,
                    StartDate   = viewModel.StartDate,
                    Duration    = viewModel.Duration,
                    Description = viewModel.Description
                };

                unitOfWork.GymClassRepository.Add(gymClass);
                await unitOfWork.CompleteAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(viewModel));
        }
示例#19
0
        public async Task <IActionResult> BookingToogle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ApplicationUser currentUser = await _context.Users.Where
                                              (u => u.UserName == User.Identity.Name).FirstOrDefaultAsync();

            GymClass currentClass = await _context.GymClass.Where(c => c.Id == id)
                                    .Include(a => a.AttendingMembers).FirstOrDefaultAsync();

            if (currentClass == null)
            {
                return(NotFound());
            }

            ApplicationUserGymClass attending = currentClass.AttendingMembers
                                                .Where(u => u.ApplicationUserId == currentUser.Id &&
                                                       u.GymClassId == id).FirstOrDefault();

            if (attending == null)
            {
                var book = new ApplicationUserGymClass()
                {
                    ApplicationUserId = currentUser.Id,
                    GymClassId        = (int)id
                };

                _context.UserGym.Add(book);
                _context.SaveChanges();
            }
            else
            {
                _context.UserGym.Remove(attending);
                _context.SaveChanges();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#20
0
        public async Task <IActionResult> BookingToogle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            //Hämta den inloggade användarens id
            // var userId = _context.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);
            var userId = userManager.GetUserId(User);

            //Hämta aktuellt gympass
            //Todo: Remove button in ui if pass is history!!!
            GymClass currentGymClass = await unitOfWork.GymClasses.GetWithAttendingMembersAsync(id);

            //Är den aktuella inloggade användaren bokad på passet?
            var attending = currentGymClass.AttendingMembers
                            .FirstOrDefault(u => u.ApplicationUserId == userId);

            //Om inte, boka användaren på passet
            if (attending == null)
            {
                var book = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = currentGymClass.Id
                };

                unitOfWork.UserGymClasses.Add(book);
                await unitOfWork.CompleteAsync();
            }

            //Annars avboka
            else
            {
                unitOfWork.UserGymClasses.Remove(attending);
                await unitOfWork.CompleteAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#21
0
        public async Task <IActionResult> Create([Bind("Id,Name,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                unitOfWork.GymClasses.Add(gymClass);
                await unitOfWork.CompleteAsync();

                if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
                {
                    var gymClasses = await unitOfWork.GymClasses.GetAllClassesWithUsers();

                    var vm = new IndexViewModel {
                        GymClasses = gymClasses
                    };
                    return(PartialView("GymClassesPartial", vm));
                }

                return(RedirectToAction(nameof(Index)));
            }
            return(View(gymClass));
        }
示例#22
0
        public async Task <IActionResult> Create([Bind("Id,Name,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                unitOfWork.GymClasses.Add(gymClass);
                await unitOfWork.CompleteAsync();

                if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
                {
                    var model = await unitOfWork.GymClasses.GetWithUsersAsync(gymClass.Id);

                    // return Json(model);
                    return(PartialView("GymClassPartial", model));
                }
            }

            if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
            {
                return(Json(gymClass));
            }

            return(View(gymClass));
        }
示例#23
0
        public ActionResult Edit([Bind(Include = "GymClassId,Description,GymClassTypeId,ClassTime,ClassDate,MaxCapacity,MaxWaitList,ClassBookings,ClassWaiting")] ClassBookingDetail gymClass)
        {
            Tex.Log("Enter GymClassController/Edit");
            try {
                if (ModelState.IsValid)
                {
                    if (gymClass != null)
                    {
                        Tex.Log("Model Valid - GC ID " + gymClass.GymClassId);
                    }
                    GymClass dbClass = db.GymClass.Find(gymClass.GymClassId);
                    GymClassMapper.CopyGymClass(gymClass.ToModel(), dbClass);
                    db.Entry(dbClass).State = EntityState.Modified;

                    if (gymClass.ClassBookings != null && gymClass.ClassBookings.Any())
                    {
                        foreach (var booking in gymClass.ClassBookings)
                        {
                            db.Entry(booking).State = EntityState.Modified;
                        }
                    }
                    if (gymClass.ClassWaiting != null && gymClass.ClassWaiting.Any())
                    {
                        foreach (var booking in gymClass.ClassWaiting)
                        {
                            db.Entry(booking).State = EntityState.Modified;
                        }
                    }
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                return(View(gymClass));
            } catch (Exception ex) {
                Tex.Dump(ex, "Excetption - GymClassControler/Edit");
                throw;
            }
        }
示例#24
0
        public static GymClass ToModel(this ClassDetail classDetail)
        {
            GymClass gymClass = new GymClass();

            gymClass.Description    = classDetail.Description;
            gymClass.GymClassId     = classDetail.GymClassId;
            gymClass.GymClassTypeId = classDetail.GymClassTypeId;
            gymClass.MaxCapacity    = classDetail.MaxCapacity;
            gymClass.MaxWaitList    = classDetail.MaxWaitList;
            if (classDetail.ClassDateTime != null && classDetail.ClassDateTime > DateTime.Now)
            {
                gymClass.ClassDateTime = classDetail.ClassDateTime;
            }
            else if (!String.IsNullOrEmpty(classDetail.ClassDate) && !String.IsNullOrEmpty(classDetail.ClassTime))
            {
                DateTime d;
                bool     dateOk = DateTime.TryParseExact(classDetail.ClassDate + " " + classDetail.ClassTime, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out d);
                if (dateOk)
                {
                    gymClass.ClassDateTime = d;
                }
            }
            return(gymClass);
        }
示例#25
0
        public ActionResult ReservationToggle(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
            }
            GymClass        currentClass = db.GymClasses.FirstOrDefault(g => g.ID == id);
            ApplicationUser currentUser  = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);

            if (currentClass != null)
            {
                if (currentClass.AttendingMembers.Contains(currentUser))
                {
                    currentClass.AttendingMembers.Remove(currentUser);
                    db.SaveChanges();
                }
                else
                {
                    currentClass.AttendingMembers.Add(currentUser);
                    db.SaveChanges();
                }
            }
            return(RedirectToAction("Index"));
        }
示例#26
0
        public async Task <IActionResult> Create([Bind("Id,Name,StartTime,Duration,Description")] GymClass gymClass)
        {
            if (ModelState.IsValid)
            {
                unitOfWork.GymClasses.Add(gymClass);
                await unitOfWork.CompleteAsync();

                if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
                {
                    ////Get all
                    //var gymClasses = await.unityOfWork.GymClasses.GetAllWithUsersAsync();
                    //var vm = new IndexViewModel {GymClasses = gymClasses };
                    //return PartialView("GymClassesPartial", vm);

                    ////Get one
                    var model = await unitOfWork.GymClasses.GetWithAttendingMembersAsync(gymClass.Id);

                    return(PartialView(nameof(Index)));
                }
                return(RedirectToAction(nameof(Index)));
            }

            return(View(gymClass));
        }
示例#27
0
 public void Remove(GymClass gymClass)
 {
     db.Remove(gymClass);
 }
示例#28
0
        //public async GymClass GetWithAttendingMembers(int? id) //detta ska levereras till controllern så att vi kan operera på rätt GymClass. Vi måste således ha rätt GymClass - för det använder vi det aktuella Id som vi kommer få genom vyn
        //{
        //    return db.UserGymClass.
        //}

        public void Remove(GymClass gymClass) //repositoryt måste ha den mest grundläggande db-funktionaliteten
        {
            db.GymClass.Remove(gymClass);
        }
示例#29
0
 public void Add(GymClass gymClass) // här kan man operera på databasen m.h.a. EFCore. Repositoryt har sina beteenden som enligt kontrakt med repositoryts Interface. Repositoryts beteenden skapas med EFCore-funktioner.
 {
     //db.Users.Where(u => u.UserName == )
     db.Add(gymClass);
 }
示例#30
0
 public void Update(GymClass gymClass) //lite hjälp.
 {
     db.GymClass.Update(gymClass);
 }