示例#1
0
        // GET: GymClasses/BookingToggle/5
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            // Get the userid
            var      userId          = userManager.GetUserId(User);
            GymClass currentGymClass = await unitOfWork.GymClasses.GetMembersAsync(id);

            // Is the user booked on the pass?
            var attending = currentGymClass.AttendingMembers.FirstOrDefault(u => u.ApplicationUserId == userId);

            // If not book the user on the pass
            if (attending == null)
            {
                var book = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = currentGymClass.Id
                };
                unitOfWork.UserGymClasses.Add(book);
                await unitOfWork.CompleteAsync();
            }

            // Otherwise unbook
            else
            {
                unitOfWork.UserGymClasses.Remove(attending);
                await unitOfWork.CompleteAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#2
0
        // [Authorize]
        public async Task <IActionResult> BookingToogle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var gymClass = await _context.GymClasses.Include(g => g.AttendingMembers)
                           .FirstOrDefaultAsync(m => m.Id == id);

            if (gymClass.AttendingMembers == null)
            {
                gymClass.AttendingMembers = new List <ApplicationUserGymClass>();
            }
            var inloggadMember = userManager.GetUserId(User);

            var member = gymClass.AttendingMembers.Where(u => u.ApplicationUserId == inloggadMember)
                         .FirstOrDefault();

            if (member != null)
            {
                gymClass.AttendingMembers.Remove(member);
            }
            else
            {
                ApplicationUserGymClass newMember = new ApplicationUserGymClass();
                newMember.ApplicationUserId = inloggadMember;
                gymClass.AttendingMembers.Add(newMember);
            }
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
示例#3
0
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id is null)
            {
                return(BadRequest());
            }

            var userId = userManager.GetUserId(User);

            var attending = db.ApplicationUserGymClasses.Find(userId, id);

            if (attending is null)
            {
                var booking = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = (int)id
                };

                db.ApplicationUserGymClasses.Add(booking);
                await db.SaveChangesAsync();
            }
            else
            {
                db.ApplicationUserGymClasses.Remove(attending);
                await db.SaveChangesAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id is null)
            {
                return(BadRequest());
            }

            var userId = UserManager.GetUserId(User);

            var attending = UnitOfWork.AppUserRepository.GetAttending(id, userId);

            if (attending is null)
            {
                var booking = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = (int)id
                };

                UnitOfWork.AppUserRepository.Add(booking);
                await UnitOfWork.CompleteAsync();
            }
            else
            {
                UnitOfWork.AppUserRepository.Remove(attending);
                await UnitOfWork.CompleteAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#5
0
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id is null)
            {
                return(BadRequest());
            }

            var userId = usermanager.GetUserId(User);
            ApplicationUserGymClass attending = await uow.AppUserRepo.GetAttending(id, userId);

            if (attending is null)
            {
                var booking = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = (int)id
                };

                uow.AppUserRepo.Add(booking);
            }
            else
            {
                uow.AppUserRepo.Remove(attending);
            }

            await uow.CompleteAsync();

            return(RedirectToAction(nameof(Index)));
        }
示例#6
0
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id is null)
            {
                return(BadRequest());
            }

            var loggedInUser = _userManager.GetUserId(User);
            var attending    = await uow.UserGymClassRepository.GetAttending(id, loggedInUser);

            if (attending is null)
            {
                var booking = new ApplicationUserGymClass
                {
                    GymClassId        = (int)id,
                    ApplicationUserId = loggedInUser
                };

                uow.UserGymClassRepository.Add(booking);
            }
            else
            {
                uow.UserGymClassRepository.Remove(attending);
            }

            await uow.CompeteAsync();

            return(RedirectToAction(nameof(Index)));
        }
示例#7
0
        public async Task <IActionResult> BookingToggle(int?id)
        {
            //  olika sätt att hitta user:
            // dbContext.Users bla bla
            // User.Identity  bla bla

            var userId = userManager.GetUserId(User);

            // If not logged in
            if (userId is null)
            {
                return(NotFound());
            }

            var attending = unitOfWork.AppUserRepository.GetAttending(userId, id);

            // TODO: check that id (GymClass) exist

            if (attending is null)
            {
                var booking = new ApplicationUserGymClass {
                    ApplicationUserId = userId, GymClassId = (int)id
                };
                unitOfWork.AppUserRepository.Add(booking);
            }
            else
            {
                unitOfWork.AppUserRepository.Remove(attending);
            }
            await unitOfWork.CompleteAsync();

            return(RedirectToAction(nameof(Index)));
        }
示例#8
0
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id is null)
            {
                return(BadRequest());
            }

            //Check who is logged in with Get User id
            var userId = userManager.
                         GetUserId(User);

            // Get current gympass
            // include gymclasses, include all rows with attending members
            var currentGymClass = await db.GymClasses.
                                  Include(g => g.AttendedMembers)
                                  // get one gym class
                                  .FirstOrDefaultAsync(a => a.Id == id);

            // less code line 38-46
            // var attending = db.ApplicationUserGymClasses.Find(userId, id);
            // need to change and cast Id to int: GymClassId = currentGymClass.Id --> GymClassId = (int)Id

            // Am i booked in the class?
            var attending = currentGymClass?.AttendedMembers.
                            FirstOrDefault(a => a.ApplicationUserId == userId);

            if (attending is null)
            {
                // make a new booking if attending is null (no current booking)
                var booking = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = currentGymClass.Id
                };
                // add booking to db
                db.ApplicationUserGymClasses.Add(booking);
                await db.SaveChangesAsync();
            }
            //not null I want to remove my attending
            else
            {
                db.ApplicationUserGymClasses.Remove(attending);
                await db.SaveChangesAsync();
            }
            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            //Hämta den inloggade användarens Id
            var currentUserId = userManager.GetUserId(User);

            //Hämta aktuellt gympass läs där vi även hämtar navigationpropertyt
            var currentGymClass = await unitOfWork.GymClasses.GetWithAttendingMembers(id);

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

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

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

                unitOfWork.UserGymClass.Add(book);
                await unitOfWork.CompleteAsync();
            }
            //Annars avboka
            else
            {
                unitOfWork.UserGymClass.Remove(attending);
                await unitOfWork.CompleteAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#10
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
            var currentGymClass = await _context.Gym
                                  .IgnoreQueryFilters()
                                  .Include(a => a.AttendingMembers)
                                  .FirstOrDefaultAsync(g => g.Id == 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,
                    GymId             = currentGymClass.Id
                };

                _context.ApplicationUserGymClass.Add(book);
                _context.SaveChanges();
            }

            //Annars avboka
            else
            {
                _context.ApplicationUserGymClass.Remove(attending);
                _context.SaveChanges();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#11
0
        public async Task <ActionResult> BookingToggle(int?id)
        {
            if (id == null)
            {
                return(BadRequest());
            }

            var userId = _userManager.GetUserId(User);

            ApplicationUserGymClass attending = await ouw.AppUserRepo.GetAttending(id, userId);

            //var gymClass = await _context.GymClass.Include(g => g.AttendingMembers).FirstOrDefaultAsync(a => a.Id == id);


            //var attending = gymClass.AttendingMembers.FirstOrDefault(a => a.ApplicationUserID == user);


            //var findMember = await _context.AttendingMember.FindAsync(user, id);

            if (attending == null)
            {
                var booking = new ApplicationUserGymClass
                {
                    ApplicationUserID = userId,
                    GymClassID        = (int)id,
                };

                ouw.AppUserRepo.Add(booking);
                //_context.AttendingMember.Add(booking);
            }
            else
            {
                ouw.AppUserRepo.Remove(attending);
                // _context.AttendingMember.Remove(findMember);
            }

            await ouw.CompleteAsync();

            //await _context.SaveChangesAsync();
            return(RedirectToAction(nameof(Index)));
        }
示例#12
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)));
        }
示例#13
0
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var gymClass = await _unitOfWork.GymClasses.GetClassWithAttendingMembersAsync(id);

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

            var userId = _userManager.GetUserId(User);

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

            var attendingMember = gymClass.AttendingMembers.FirstOrDefault(a => a.ApplicationUser.Id == userId);

            if (attendingMember == null)
            {
                attendingMember = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = gymClass.Id
                };
                await _unitOfWork.UserGymClasses.AddAsync(attendingMember);

                await _unitOfWork.CompleteAsync();

                return(View(nameof(Index)));
            }

            await _unitOfWork.CompleteAsync();

            return(View(nameof(Index)));
        }
示例#14
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)));
        }
示例#15
0
        // BookingToggle
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id is null)
            {
                return(BadRequest());
            }

            var userId = userManager.GetUserId(User);


            //var currentGymClass = await db.GymClasses.Include(g => g.AttendedMembers)
            //       .FirstOrDefaultAsync(a => a.Id == id);

            //var attending = currentGymClass?.AttendedMembers
            //     .FirstOrDefault(a => a.ApplicationUserId == userId);

            var attending = db.ApplicationUserGymClasses.Find(userId, id);

            if (attending is null)
            {
                var booking = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = (int)id
                                        //GymClassId = currentGymClass.Id
                };

                db.ApplicationUserGymClasses.Add(booking);
                await db.SaveChangesAsync();
            }
            else
            {
                db.ApplicationUserGymClasses.Remove(attending);
                await db.SaveChangesAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#16
0
 public void Add(ApplicationUserGymClass attending)
 {
     _dbContext.Add(attending);
 }
        public async Task <IActionResult> BookingToggle(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            //var userId = _context.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);
            var userId = _userManager.GetUserId(User);

            var currentGymClass = await _context.GymClasses
                                  .Include(a => a.AttendingMembers)
                                  .FirstOrDefaultAsync(g => g.Id == id);

            var attending = currentGymClass.AttendingMembers
                            .FirstOrDefault(u => u.ApplicationUserId == userId);

            if (attending == null)
            {
                var book = new ApplicationUserGymClass
                {
                    ApplicationUserId = userId,
                    GymClassId        = currentGymClass.Id
                };
                _context.ApplicationUserGymClasses.Add(book);
                _context.SaveChanges();
            }

            else
            {
                _context.ApplicationUserGymClasses.Remove(attending);
                _context.SaveChanges();
            }
            //var pass = await _context.GymClasses
            //   .Include(c => c.AttendingMembers)
            //   .ThenInclude(e => e.ApplicationUser)
            //   .FirstOrDefaultAsync(m => m.Id == id);

            //if (pass != null)
            //{
            //    _context.GymClasses.Remove(pass);
            //    await _context.SaveChangesAsync();
            //    return RedirectToAction(nameof(Index));
            //}
            //if(pass == null)
            //{
            //    _context.GymClasses.Add(pass);
            //    await _context.SaveChangesAsync();
            //    return RedirectToAction(nameof(Index));
            //}



            //var gymClass = await _context.GymClasses
            //    .FirstOrDefaultAsync(m => m.Id == id);
            //if (gymClass == null)
            //{
            //    return NotFound();
            //}

            return(RedirectToAction(nameof(Index)));
        }
        public void Remove(ApplicationUserGymClass attending)

        {
            context.ApplicationUserGymClasses.Remove(attending);
        }
        public void Add(ApplicationUserGymClass book)

        {
            context.ApplicationUserGymClasses.Add(book);
        }
示例#20
0
 public void Remove(ApplicationUserGymClass attending)
 {
     db.Remove(attending);
 }
示例#21
0
 public void Add(ApplicationUserGymClass attending)
 {
     db.Add(attending);
 }
 public void Add(ApplicationUserGymClass userGymClass)
 {
     db.UserGymClass.Add(userGymClass);
 }
示例#23
0
 public void Add(ApplicationUserGymClass userGymClass)
 {
     db.UserGymClass.Add(userGymClass); //mitt feltänk: db.ApplicationUserGymClass
 }
示例#24
0
 public void Remove(ApplicationUserGymClass attending)
 {
     _dbContext.Remove(attending);
 }