コード例 #1
0
        public async void CargarScoreSeguimientoAsync()
        {
            OpaServicioFachada Fa = new OpaServicioFachada();

            this.StatusTask = Status.Running;
            short  ValorEnum = 0;
            string nombre    = "ResultadosScore";



            try
            {
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                // Guardo el log funcional de ejecucion de este proceso
                red = new DatosRedFacade().ObtenerDatosDeRed();
                new OpaAuditoriaFachada().GuardarLogFuncionalWFAsync("Servicio windows para carga de informacion <ResultadosScore>",
                                                                     "Not Gui required",
                                                                     "<root><NoData>Not data is required to execution</NoData></root>",
                                                                     new DatosUsuarioAuditoria
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                });


                // 0: otorgamiento masivo  1: seguimiento
                string Estado = ConfigurationManager.AppSettings["Estado"];

                if (Estado == "0")
                {
                    OpaServicioFachada FachadaServicio = new OpaServicioFachada();
                    OpaSarcFachada     bd = new OpaSarcFachada();


                    List <DatosGeneralPersona> EntidadCreditosPersona = bd.BuscarListaDatosGeneralesPersona().ToList();


                    List <Opa.Sarc.Entidades.ResultadosScore> EntidadResultado = new List <ResultadosScore>();



                    ////  el proceso normal es que se envie false solo se envia true para el efecto de que se cree Otorgamiento para todos los productos
                    bool CargarHistoria = true;
                    //bool CargarHistoria = true;

                    foreach (DatosGeneralPersona Registro in EntidadCreditosPersona)
                    {
                        decimal CedulaPersona = Convert.ToDecimal(Registro.IdentificacionPersona);

                        string Numerosolicitud = null;

                        try
                        {
                            ArrayList ArrayCentral = new ArrayList();
                            //consultacentrales 1: SI 2:NO
                            //List<ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociadoServicio(CedulaPersona, Numerosolicitud, 0, 0, CargarHistoria);
                            List <ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociado(CedulaPersona, Numerosolicitud, 1, ArrayCentral, CargarHistoria, false, false);

                            if (EntidadModeloCalificacion != null && EntidadModeloCalificacion.Count > 0)
                            {
                                CapacidadPago(CedulaPersona, Numerosolicitud, EntidadModeloCalificacion.FirstOrDefault(), EntidadModeloCalificacion.FirstOrDefault().EgresosExternos);
                            }
                        }
                        catch (Exception ex)
                        {
                            string exe = ex.Message.ToString();
                        }
                    }
                }

                //cuando es seguimiento
                else
                {
                    if (Estado == "1")
                    {
                        OpaServicioFachada FachadaServicio = new OpaServicioFachada();

                        List <Sarc_ViewCreditosParaSeguimiento> EntidadCreditosPersona = new List <Sarc_ViewCreditosParaSeguimiento>();

                        EntidadCreditosPersona = new OpaSarcFachada().BuscarListaCreditosParaSeguimiento();

                        //List<ResultadosScore> EntidadCreditosPersona = new List<ResultadosScore>();

                        //List<Opa.Sarc.Entidades.ResultadosScore> EntidadResultado = new Opa.Sarc.Negocio.Logica.ResultadosScoreBL().BuscarListarResultadosScore();



                        //EntidadCreditosPersona = (from c in EntidadResultado
                        //                          where c.ScoreInicial = true
                        //                          select c).ToList();


                        bool CargarHistoria = false;
                        //bool CargarHistoria = true;
                        OpaTransaccionalFachada FachadaTransaccional = new OpaTransaccionalFachada();
                        List <ResultadosScore>  List = new List <ResultadosScore>();
                        //new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF2().CargarDatos();
                        foreach (Sarc_ViewCreditosParaSeguimiento Registro in EntidadCreditosPersona)
                        {
                            string  NroSolicitud  = Registro.NroSolicitudOtorgamiento == 0 ? "" : Registro.NroSolicitudOtorgamiento.ToString();
                            decimal CedulaPersona = Convert.ToDecimal(Registro.IdentificacionPersona);
                            try
                            {
                                ArrayList ArrayCentral = new ArrayList();
                                List <ModeloCalificacion> EntidadModeloCalificacion = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF().ModeloCalificacionAsociado(CedulaPersona, NroSolicitud, 1, ArrayCentral, CargarHistoria, false, false);

                                if (EntidadModeloCalificacion != null && EntidadModeloCalificacion.Count > 0)
                                {
                                    CapacidadPago(CedulaPersona, EntidadModeloCalificacion.FirstOrDefault().NroSolicitud, EntidadModeloCalificacion.FirstOrDefault(), EntidadModeloCalificacion.FirstOrDefault().EgresosExternos);
                                }

                                decimal NroSol = Convert.ToDecimal(EntidadModeloCalificacion.FirstOrDefault().NroSolicitud);
                                bool    existe = new OpaTransaccionalFachada().BuscarLiquidaCreditosPersonaPorSolicitud(NroSol);
                                if (!existe)
                                {
                                    CreditosPersona CreditoPersona = new OpaSarcFachada().BuscarUnCreditosPersonaPorPagare(Convert.ToInt32(Registro.NroPagare));
                                    string          numeroPagare   = CreditoPersona.NumeroPagare.ToString();
                                    decimal         nroSolicitud   = FachadaTransaccional.BuscarLiquidaCreditosPagare(numeroPagare);

                                    FachadaTransaccional.GuardarLiquidaCreditosPersona(new LiquidacreditosPersonas()
                                    {
                                        CedulaPersona               = Convert.ToInt64(CedulaPersona),
                                        NumeroSolicitud             = nroSolicitud,
                                        Plazo                       = CreditoPersona.Plazo.ToString(),
                                        coddestino                  = CreditoPersona.Coddestino,
                                        NumeroSolicitudOtorgamiento = Convert.ToDecimal(EntidadModeloCalificacion.FirstOrDefault().NroSolicitud),
                                        Valor                       = CreditoPersona.CapitalInicial,
                                        Fecha                       = CreditoPersona.FechaCargoPrestamo,
                                        Codlinea                    = CreditoPersona.Codlinea,
                                        Obligatorio                 = false,
                                        Reestructuracion            = false,
                                        CreditosReestructurados     = "",
                                        ExigeCodeudor               = false,
                                        Codeudores                  = "",
                                        IncluyeExtras               = false,
                                        CuotasExtras                = "",
                                        IncluyeCostos               = false,
                                        Tasa = CreditoPersona.TasaColocacion,
                                        CostosAdicionales    = "",
                                        EsOtorgamientoMasivo = true
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                string exe = ex.Message.ToString();
                            }
                        }

                        //List<ResultadosScore> Lista = new Opa.Sarc.Negocio.FlujoTrabajo.ModeloCalificacionWF2().ListarTodosResultadosScore();
                        //List<ResultadoScorePartial> ListaAux = Lista.Select((x, index) => new ResultadoScorePartial
                        //{
                        //    IdResultadosScore = x.IdResultadosScore,
                        //    CedulaPersona = (long)x.CedulaPersona,
                        //    NombrePersona = x.NombrePersona,
                        //    NroSolicitud = x.NroSolicitud,
                        //    FechaScore = (DateTime)x.FechaScore,
                        //    PesoCuantitativo = (short)x.PesoCuantitativo,
                        //    PesoCualitativo = (short)x.PesoCualitativo,
                        //    Calificacion = x.Calificacion,
                        //    ResultadosVariables = x.ResultadosVariables,
                        //    ResultadosCapacidad = x.ResultadosCapacidad,
                        //    Limites = x.Limites,
                        //    ScoreInicial = x.ScoreInicial,
                        //    IdConsultasCentral = (Guid)x.IdConsultasCentral,
                        //    IdSegmento = (Guid)x.IdSegmento,
                        //    IdentificadorOrdenador = index + 1
                        //}).ToList();
                        //InsertarRegistrosBulkInsert(ListaAux, List);
                    }
                }
            }
            catch (Exception ex)
            {
                DatosUsuarioAuditoria d = new DatosUsuarioAuditoria()
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                };

                // Loggin error
                Guid idlog = OpaExceptionHandling.Handle(ex, d);
                this.StatusTask = Status.Error;
                ValorEnum       = (short)StatusTask;
                Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
                return;
            }


            this.StatusTask = Status.Ok;
            ValorEnum       = (short)StatusTask;
            Fa.GuardarEstadoDelServicio(ValorEnum, nombre, "Sarc");
            Task.Factory.StartNew(() => CalificacionCartera());
        }