public HttpResponseMessage Book(Booking booking)
        {
            var context             = new TimeTableContext(WebConfigurationManager.AppSettings["DbConnectionString"]);
            var bookingRepository   = new BookingRepository(context);
            var classroomRepository = new ClassroomRepository(context);
            var service             = new BookingService(bookingRepository, classroomRepository);

            booking.Owner = UserId;
            var bookingService = service.BookRoom(booking, UserProfile);

            switch (bookingService)
            {
            case BookingAvailability.Success:
                return(Request.CreateResponse(HttpStatusCode.OK, booking));

            case BookingAvailability.Booked:
                return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, "The room was already booked"));

            case BookingAvailability.Scheduled:
                return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, "There was a normal lesson during the time you would like to reserve"));

            case BookingAvailability.Maintenance:
                return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, "There is maintenance in this classroom during the time you would like to reserve."));

            default:
                return(null);
            }
        }
        public ActionResult Edit(BookingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            if (model.fromDate > model.To)
            {
                ModelState.AddModelError("", "From date must be less then to date!");
                return(View(model));
            }
            if (model.fromDate < DateTime.Now)
            {
                ModelState.AddModelError("", "From date must be greater then today date!");
                return(View(model));
            }

            model.UserId = 1;
            _service.BookRoom(model);

            return(RedirectToAction("Index"));
        }