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()); }