public async Task <IActionResult> CheckOut([FromRoute] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var habitacion = await _context.Habitacion.FindAsync(id);

            if (habitacion == null)
            {
                return(NotFound());
            }
            var asigEmpleado = _asignacionesRepository.EmpleadoAsignadoPorRol(habitacion.HabitacionId, (int)RolEnum.AgenteDeLimpieza);

            if (asigEmpleado == null)
            {
                return(BadRequest(new ErrorResponse()
                {
                    messages = new string[] { "HABITACION.MISSING_CLEANER" }
                }));
            }
            if (habitacion.EstadoHabitacionId != (int)HabitacionEstado.Ocupado)
            {
                return(BadRequest(new ErrorResponse()
                {
                    messages = new string[] { "HABITACION.ERROR_ON_CHECKOUT" }
                }));
            }
            habitacion.EstadoHabitacionId = (int)HabitacionEstado.Desocupado;
            _habitacionRepository.Edit(habitacion);
            _habitacionRepository.SaveChanges();
            new NotificacionService().Notificar(asigEmpleado.Empleado, habitacion, ActividadTipo.Limpieza);
            return(Ok(habitacion));
        }
Beispiel #2
0
 public Empleado EmpleadoAsignadoPorRol(int idHabitacion, int idRol)
 {
     try
     {
         return(_asignacionesRepository.EmpleadoAsignadoPorRol(idHabitacion, idRol).Empleado);
     }
     catch (Exception)
     {
         return(null);
     }
 }