public async Task <IActionResult> Create([Bind("Id,From,To,Description,RoomId")] Block block) { if (ModelState.IsValid) { var room = await _context.Room .Include(r => r.Blocks) .Include(r => r.Bookings) .FirstAsync(r => r.Id == block.RoomId); if (!BookingCheck.IsAvailable(room, block.From, block.To)) { ModelState.AddModelError("NotAvailable", "Room is not available for given period."); } else { _context.Add(block); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } var rooms = _context.Room .Select(r => new { Id = r.Id, Name = r.Id + " - " + r.Description }); ViewData["RoomId"] = new SelectList(rooms, "Id", "Name", block.RoomId); return(View(block)); }
public async Task <IActionResult> Edit(long id, [Bind("Id,From,To,RoomId,UserId")] Booking booking) { if (id != booking.Id) { return(NotFound()); } if (ModelState.IsValid) { var room = await _context.Room .Include(r => r.Blocks) .Include(r => r.Bookings) .FirstAsync(r => r.Id == booking.RoomId); if (!BookingCheck.IsAvailable(room, booking.From, booking.To)) { ModelState.AddModelError("NotAvailable", "Room is not available for given period."); } else { try { _context.Update(booking); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BookingExists(booking.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } } var rooms = _context.Room .Select(r => new { Id = r.Id, Name = r.Id + " - " + r.Description }); ViewData["RoomId"] = new SelectList(rooms, "Id", "Name", booking.RoomId); var users = _context.Users .Select(u => new { Id = u.Id, Name = string.Join(' ', u.GivenName, u.SurnamePrefix, u.Surname) }); ViewData["UserId"] = new SelectList(users, "Id", "Name", booking.UserId); return(View(booking)); }