private void UpdateReservation(booking reservation)
 {
     var query = from it in db.bookings
                 where it.id == reservation.id
                 select it;
     booking b = query.FirstOrDefault();
     b.branch_fk = reservation.branch_fk;
     b.room_fk = reservation.room_fk;
     b.startDate = reservation.startDate;
     b.endDate = reservation.endDate;
     b.responsable = reservation.responsable;
     b.description = reservation.description;
     b.coffee = reservation.coffee;
     db.SaveChanges();
 }
        private bool IsRoomFree(booking reservation)
        {
            // Logica de validação para ver se a sala ja esta reservada:
            // TODO: revisar a logica para checar o choque de horarios

            var query = from b in db.bookings
                        where b.branch_fk == reservation.branch_fk
                        && b.room_fk == reservation.room_fk
                        && ((reservation.startDate >= b.startDate && reservation.startDate <= b.endDate)
                        || (reservation.endDate >= b.startDate && reservation.endDate <= b.endDate)
                        || (reservation.endDate >= b.endDate && reservation.startDate <= b.startDate)
                        || (reservation.endDate <= b.endDate && reservation.startDate >= b.startDate))
                        select b;

            // Se só tiver o próprio id naquele horario então deixa atualizar
            if (reservation.id > 0)
            {
                query = query.Where(x => x.id != reservation.id);
            }
            bool valid = query.Count() == 0 ? true : false;
            return valid;
        }
 private void SaveReservation(booking reservation)
 {
     db.bookings.Add(reservation);
     db.SaveChanges();
 }
Exemplo n.º 4
0
        public ActionResult OpenModalCreate(DateTime start)
        {
            booking b = new booking();
            b.startDate = start;
            b.endDate = start.AddMinutes(30);
            b.branch_fk = 0;
            b.room_fk = 0;

            ViewBag.branches = LoadBranches();
            ViewBag.rooms = LoadRooms();
            ViewBag.IsRoomFree = true;
            return PartialView("_CreateEvent", b);
        }