public async Task <IActionResult> Edit(string roomid, string startTime, [Bind("RoomID,StartTime,StaffID,StudentID")] Slot slot)
 {
     if (ModelState.IsValid)
     {
         try
         {
             _context.Update(slot);
             await _context.SaveChangesAsync();
         }
         catch (DbUpdateConcurrencyException)
         {
             if (!SlotExists(slot.RoomID))
             {
                 return(NotFound());
             }
             else
             {
                 throw;
             }
         }
         return(RedirectToAction(nameof(Index)));
     }
     ViewData["RoomID"]    = new SelectList(_context.Room, "RoomID", "RoomName", slot.RoomID);
     ViewData["StaffID"]   = new SelectList(_context.Staff, "StaffID", "StaffID", slot.StaffID);
     ViewData["StudentID"] = new SelectList(_context.Student, "StudentID", "StudentID", slot.StudentID);
     return(View(slot));
 }
Exemple #2
0
        public async Task <IActionResult> Edit(string id, [Bind("AdminID,FirstName,LastName,Email")] Admin admin)
        {
            if (id != admin.AdminID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(admin);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AdminExists(admin.AdminID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(admin));
        }
Exemple #3
0
        public async Task <IActionResult> Book(string roomID, DateTime startTime)
        {
            var slot = _context.Slot.FirstOrDefault(s => s.RoomID == roomID && s.StartTime == startTime);

            // get current logged in user
            ApplicationUser currentUser = _context.ApplicationUser
                                          .FirstOrDefault(u => u.Email == HttpContext.User.Identity.Name);

            // check if the student has booked the maximum slots for the given date
            var studentBookedMaxForDate = _context.Slot
                                          .FirstOrDefault(x => x.StartTime.Date == startTime.Date && x.StudentID == currentUser.Id) != null;

            if ((slot.StudentID == null) && (!studentBookedMaxForDate))
            {
                slot.StudentID = currentUser.Id;
            }
            else if (slot.StudentID == currentUser.Id)
            {
                slot.StudentID = null;
            }

            _context.Update(slot);

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Edit(string id, [Bind("RoomID,RoomName")] Room room)
        {
            if (id != room.RoomID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (_context.Room.Any(r => (r.RoomName == room.RoomName) && (r.RoomID != room.RoomID)))
                    {
                        ModelState.AddModelError("", "Room name has already exist");
                        return(View(room));
                    }
                    else
                    {
                        room.RoomName = room.RoomName.ToUpper();
                        _context.Update(room);
                        await _context.SaveChangesAsync();
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RoomExists(room.RoomID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(room));
        }