public GeneradorEstadoAtencion(IContenedorMetodos <EstadoAtencion> contenedorMetodos) : base(contenedorMetodos) { _programadoPrimeraEntrega = new DeclaracionEstados(); _programadoSegundaEntrega = new DeclaracionEstados(); _contactado = new DeclaracionEstados(); _elegible = new DeclaracionEstados(); RegistrarMetodo(f => f.Elegibilidad, (tr, persona) => ConsultarComoEstado(tr, ConsultarElegibilidad(tr, persona))); RegistrarMetodo(f => f.FechaElegibilidad, (tr, persona) => ConsultarElegibilidad(tr, persona).Fecha); RegistrarMetodo(f => f.Contactado, (tr, persona) => ConsultarComoEstado(tr, ConsultarContactado(tr, persona))); RegistrarMetodo(f => f.FechaContactado, (tr, persona) => ConsultarContactado(tr, persona).Fecha); RegistrarMetodo(f => f.Programado, (tr, persona) => ConsultarComoEstado(tr, ConsultarProgramadoPrimeraEntrega(tr, persona))); RegistrarMetodo(f => f.FechaProgramado, (tr, persona) => ConsultarProgramadoPrimeraEntrega(tr, persona).Fecha); RegistrarMetodo(f => f.Reprogramado, (tr, persona) => ConsultarComoEstado(tr, ConsultarReprogramado(tr, persona))); RegistrarMetodo(f => f.FechaReprogramado, (tr, persona) => ConsultarReprogramado(tr, persona).Fecha); RegistrarMetodo(f => f.Atendido, (tr, persona) => ConsultarAtendido(tr, persona)); RegistrarMetodo(f => f.MotivoNoAtencion, (tr, persona) => ConsultarDescripcionPorId(tr, ConsultarDeclaracion(tr, persona).Id_Motivo_Noatender)); RegistrarMetodo(f => f.MotivoNoAtencionId, (tr, persona) => ConsultarDeclaracion(tr, persona).Id_Motivo_Noatender); RegistrarMetodo(f => f.TipoReprogramacion, (tr, persona) => ConsultarTipoReprogramacion(tr, persona)); RegistrarMetodo(f => f.FechaSegundaEntrega, (tr, persona) => ConsultarProgramadoSegundaEntrega(tr, persona).Fecha); RegistrarMetodo(f => f.AsistioSegundaEntrega, (tr, persona) => ConsultarDescripcionPorId(tr, ConsultarProgramadoSegundaEntrega(tr, persona).Id_Asistio)); }
DeclaracionEstados ConsultarContactado(TablasRango tr, Personas persona) { (_contactado.Id_Declaracion != persona.Id_Declaracion) .SiCumpleEntonces(() => { _contactado = ConsultarDeclaracionEstado(tr, persona, ContactadoId); }); return(_contactado); }
DeclaracionEstados ConsultarProgramadoSegundaEntrega(TablasRango tr, Personas persona) { (_programadoSegundaEntrega.Id_Declaracion != persona.Id_Declaracion) .SiCumpleEntonces(() => { _programadoSegundaEntrega = ConsultarProgramado(tr, persona, SegundaEntregaId); }); return(_programadoSegundaEntrega); }
DeclaracionEstados ConsultarElegibilidad(TablasRango tr, Personas persona) { (_elegible.Id_Declaracion != persona.Id_Declaracion) .SiCumpleEntonces(() => { _elegible = ConsultarDeclaracionEstado(tr, persona, ElegibleId); var declaracion = ConsultarDeclaracion(tr, persona); (declaracion.Id_Motivo_Noatender.HasValue && declaracion.Id_Motivo_Noatender != ProgramadoQueNoAsistioId) .SiCumpleEntonces(() => { _elegible.Id_Como_Estado = NoId; }); }); return(_elegible); }
string ConsultarComoEstado(TablasRango tr, DeclaracionEstados estado) { return(ConsultarDescripcionPorId(tr, estado.Id_Como_Estado)); }