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

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

            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 <CalificacionCartera>",
                                                                     "Not Gui required",
                                                                     "<root><NoData>Not data is required to execution</NoData></root>",
                                                                     new DatosUsuarioAuditoria
                {
                    NombreUsuario = "User is not required",
                    CodigoUsuario = "",
                    DireccionIp   = red.Ip,
                });



                List <SarcCreditosLiquidados_Result> CreditosLiquidados = new Opa.Transaccional.Negocio.Fachada.OpaTransaccionalFachada().BuscarCreditosLiquidados();


                OpaSarcFachada Fc = new OpaSarcFachada();
                List <SeguimientoCalificacionCartera> ListaSegumiento          = new List <SeguimientoCalificacionCartera>();
                SeguimientoCalificacionCartera        DatosSEguimientoAsociado = new SeguimientoCalificacionCartera();
                string calificacion = string.Empty;

                if (CreditosLiquidados.Count() > 0)
                {
                    int NroComite = 0;
                    ConsecutivosComiteCartera entidadconsecutivo = Fc.buscarconsecutivoComite();
                    if (entidadconsecutivo != null)
                    {
                        NroComite = Convert.ToInt32(entidadconsecutivo.NroComite) + 1;
                        ConsecutivosComiteCartera entidadconsecutivoactualizar = new ConsecutivosComiteCartera
                        {
                            IdConsecutivosComiteCartera = entidadconsecutivo.IdConsecutivosComiteCartera,
                            NroComite = NroComite
                        };
                        Fc.actualizarconsecutivoComite(entidadconsecutivoactualizar);
                    }
                    else
                    {
                        NroComite += 1;
                        Fc.guardarconsecutivoComite();
                    }

                    foreach (SarcCreditosLiquidados_Result item in CreditosLiquidados)
                    {
                        List <ResultadosScore> Scores = Fc.ListaTop2ResultadoScoreAsociado(item.IdentificacionPersona);
                        if (Scores.Count == 2)
                        {
                            DatosSEguimientoAsociado = new Opa.Sarc.Negocio.FlujoTrabajo.GenerarSeguimientoWF().DevolverCalificacionPropuesta(Scores[1], Scores[0], item.IdentificacionPersona.ToString(), NroComite);
                        }
                        else
                        {
                            DatosSEguimientoAsociado = new Opa.Sarc.Negocio.FlujoTrabajo.GenerarSeguimientoWF().DevolverCalificacionPropuesta(null, Scores[0], item.IdentificacionPersona.ToString(), NroComite);
                        }

                        ListaSegumiento.Add(DatosSEguimientoAsociado);
                    }

                    XElement ModeloCalificacionXml = new XElement("root");
                    foreach (SeguimientoCalificacionCartera Fila in ListaSegumiento)
                    {
                        ModeloCalificacionXml.Add(
                            new XElement("SeguimientoCartera",
                                         new XElement("IdSeguimientoCalificacionCartera", Fila.IdSeguimientoCalificacionCartera),
                                         new XElement("FechaSeguimiento", Fila.FechaSeguimiento),
                                         new XElement("IdentificacionPersona", Fila.IdentificacionPersona),
                                         new XElement("NroComite", Fila.NroComite),
                                         new XElement("CalificacionScoringInicial", Fila.CalificacionScoringInicial),
                                         new XElement("CalificacionScoringFinal", Fila.CalificacionScoringFinal),
                                         new XElement("CuberturaGarantia", Fila.CuberturaGarantia),
                                         new XElement("SolvenciaInicial", Fila.SolvenciaInicial),
                                         new XElement("SolvenciaFinal", Fila.SolvenciaFinal),
                                         new XElement("PorcentajeSolvencia", Fila.PorcentajeSolvencia),
                                         new XElement("CapacidadPagoInicial", Fila.CapacidadPagoInicial),
                                         new XElement("CapacidadPagoFinal", Fila.CapacidadPagoFinal),
                                         new XElement("PorcentajeCapacidadPago", Fila.PorcentajeCapacidadPago),
                                         new XElement("NumeroReestructuraciones", Fila.NumeroReestructuraciones),
                                         new XElement("NumeroNovaciones", Fila.NumeroNovaciones),
                                         new XElement("SaldoTotalDeuda", Fila.SaldoTotalDeuda),
                                         new XElement("CalificacionActual", Fila.CalificacionActual),
                                         //new XElement("ProvisionActual", Fila.ProvisionActual),
                                         new XElement("CalificacionPropuesta", Fila.CalificacionPropuesta),
                                         //new XElement("ProvisionPropuesta", Fila.ProvisionPropuesta),
                                         new XElement("CalificacionDefinitiva", Fila.CalificacionDefinitiva),
                                         //new XElement("ProvisionDefinitiva", Fila.ProvisionDefinitiva),
                                         new XElement("FechaCalificacionDefinitiva", Fila.FechaCalificacionDefinitiva),
                                         new XElement("Observaciones", Fila.Observaciones)
                                         ));
                    }
                    ;

                    string xmlEnviar = ModeloCalificacionXml.ToString();

                    Fc.InsertarRegistrosSeguimientoCalificacionCartera(xmlEnviar);
                }
            }
            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");
        }