protected override void AntesDePersistir(TrabajoDeUsuarioDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Insertar) { registro.Encolado = DateTime.Now; } if (parametros.Operacion == enumTipoOperacion.Insertar || parametros.Operacion == enumTipoOperacion.Modificar) { if (!registro.Iniciado.HasValue) { ParametrosJson.ValidarJson(registro.Parametros); if (registro.Planificado.Millisecond > 0 || registro.Planificado.Second > 0) { registro.Planificado = registro.Planificado.AddMilliseconds(1000 - registro.Planificado.Millisecond); registro.Planificado = registro.Planificado.AddSeconds(60 - registro.Planificado.Second); registro.Planificado.AddMinutes(1); } } } if (parametros.Operacion == enumTipoOperacion.Eliminar) { GestorDeTrazasDeUnTrabajo.EliminarTrazas(Contexto, ((TrabajoDeUsuarioDtm)parametros.registroEnBd).Id); GestorDeErroresDeUnTrabajo.EliminarErrores(Contexto, ((TrabajoDeUsuarioDtm)parametros.registroEnBd).Id); } }
public static void Desbloquear(ContextoSe contexto, int idTrabajoDeUsuario) { var gestor = Gestor(contexto); var tu = gestor.LeerRegistroPorId(idTrabajoDeUsuario, true, true, true, aplicarJoin: true); try { if (tu.Estado != TrabajoSometido.ToDtm(enumEstadosDeUnTrabajo.Bloqueado)) { throw new Exception($"El trabajo no se puede desbloquear, ha de estar en estado bloqueado y está en estado {TrabajoSometido.ToDto(tu.Estado)}"); } tu.Estado = TrabajoSometido.ToDtm(enumEstadosDeUnTrabajo.Pendiente); gestor.PersistirRegistro(tu, new ParametrosDeNegocio(enumTipoOperacion.Modificar)); GestorDeTrazasDeUnTrabajo.AnotarTraza(contexto, tu, $"Trabajo desbloqueado por el usuario {contexto.DatosDeConexion.Login}"); } catch (Exception e) { GestorDeErroresDeUnTrabajo.AnotarError(contexto, tu, e); GestorDeTrazasDeUnTrabajo.AnotarTraza(contexto, tu, $"El usuario {contexto.DatosDeConexion.Login} no ha podido desbloquear el trabajo"); throw; } }
public void AnotarError(string error, Exception e) { GestorDeErroresDeUnTrabajo.CrearError(ContextoDelEntorno, TrabajoDeUsuario, error, GestorDeErrores.Detalle(e)); }
public void AnotarError(Exception e) { GestorDeErroresDeUnTrabajo.AnotarError(ContextoDelEntorno, TrabajoDeUsuario, e); }