コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }