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)); }
public Empleado EmpleadoAsignadoPorRol(int idHabitacion, int idRol) { try { return(_asignacionesRepository.EmpleadoAsignadoPorRol(idHabitacion, idRol).Empleado); } catch (Exception) { return(null); } }