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

            var incidencia = _context.Incidencia.Where(i => i.Habitacion == habitacion.Numero).Last();

            if (habitacion == null)
            {
                return(NotFound());
            }
            if (incidencia == null)
            {
                return(BadRequest(new ErrorResponse()
                {
                    messages = new string[] { "HABITACION.MISSING_ISSUE" }
                }));
            }
            var asignEmpleado = _asignacionesRepository.EmpleadoAsignadoPorRol(habitacion.HabitacionId, (int)RolEnum.AgenteDeLimpieza);

            if (asignEmpleado == null)
            {
                return(BadRequest(new ErrorResponse()
                {
                    messages = new string[] { "HABITACION.MISSING_CLEANER" }
                }));
            }
            if (habitacion.EstadoHabitacionId != (int)HabitacionEstado.Bloqueado)
            {
                return(BadRequest(new ErrorResponse()
                {
                    messages = new string[] { "HABITACION.ERROR_ON_CHECK_UPKEEP" }
                }));
            }
            habitacion.EstadoHabitacionId = (int)HabitacionEstado.Desocupado;
            _habitacionRepository.Edit(habitacion);
            incidencia.Estado       = 1;
            incidencia.FechaCerrado = DateTime.Now;
            _context.Update(incidencia);
            var empleadoid = _context2.Empleado.Where(e => e.UsuarioNombre == _userManager.GetUserName(User)).First().EmpleadoId;
            var asignacion = _context2.AsignacionHabitacion.Where(a => a.EmpleadoId == empleadoid && a.HabitacionId == habitacion.HabitacionId).First();

            _context2.Remove(asignacion);
            _habitacionRepository.SaveChanges();
            _context.SaveChanges();
            _context2.SaveChanges();
            new NotificacionService().Notificar(asignEmpleado.Empleado, habitacion, ActividadTipo.Limpieza);
            return(Ok(habitacion));
        }
Example #2
0
 public void SaveChanges()
 {
     _context.SaveChanges();
 }