public MapearNegocio() { CreateMap <TrabajoDeUsuarioDtm, TrabajoDeUsuarioDto>() .ForMember(dto => dto.Trabajo, dtm => dtm.MapFrom(x => x.Trabajo.Nombre)) .ForMember(dto => dto.Ejecutor, dtm => dtm.MapFrom(x => $"({x.Ejecutor.Login})- {x.Ejecutor.Nombre} {x.Ejecutor.Apellido}")) .ForMember(dto => dto.Sometedor, dtm => dtm.MapFrom(x => $"({x.Sometedor.Login}) {x.Sometedor.Apellido} {x.Sometedor.Nombre}")) .ForMember(dto => dto.Estado, dtm => dtm.MapFrom(x => TrabajoSometido.ToDto(x.Estado))); CreateMap <TrabajoDeUsuarioDto, TrabajoDeUsuarioDtm>() .ForMember(dtm => dtm.Ejecutor, dto => dto.Ignore()) .ForMember(dtm => dtm.Sometedor, dto => dto.Ignore()) .ForMember(dtm => dtm.Trabajo, dto => dto.Ignore()) .ForMember(dtm => dtm.Estado, dto => dto.MapFrom(x => TrabajoSometido.ToDtm(x.Estado))); }
public static void Resometer(ContextoSe contexto, int idTrabajoDeUsuario) { var gestor = Gestor(contexto); var tu = gestor.LeerRegistroPorId(idTrabajoDeUsuario, true, true, true, aplicarJoin: true); if (tu.Estado != TrabajoSometido.ToDtm(enumEstadosDeUnTrabajo.Error) && tu.Estado != TrabajoSometido.ToDtm(enumEstadosDeUnTrabajo.conErrores) && tu.Estado != TrabajoSometido.ToDtm(enumEstadosDeUnTrabajo.Terminado) && tu.Estado != TrabajoSometido.ToDtm(enumEstadosDeUnTrabajo.iniciado) ) { throw new Exception($"El trabajo no se puede resometer, ha de estar en estado terminado, iniciado, con errores o erroneo y está en estado {TrabajoSometido.ToDto(tu.Estado)}"); } var tr = new TrabajoDeUsuarioDtm(); tr.IdSometedor = contexto.DatosDeConexion.IdUsuario; tr.IdEjecutor = tu.IdEjecutor; tr.IdTrabajo = tu.IdTrabajo; tr.Estado = enumEstadosDeUnTrabajo.Pendiente.ToDtm(); tr.Planificado = DateTime.Now; tr.Parametros = tu.Parametros; Crear(contexto, tr); }
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; } }