public bool ValidateBeneficiary(BeneficiarioEntity rowBeneficiarioEntity)
        {
            /*Aquí  se realizan todas las validaciones*/
            bool isValid = true;

            if (string.IsNullOrEmpty(rowBeneficiarioEntity.apellidoPat) || string.IsNullOrEmpty(rowBeneficiarioEntity.apellidoMat))
            {
                isValid = false;
            }


            return(isValid);
        }
        public static void Main(string[] args)
        {
            BolsaFamiliaService service = new BolsaFamiliaService();

            var conf = new ConsumerConfig
            {
                GroupId          = "consumer-group-1",
                BootstrapServers = "192.168.0.37:9092",
                AutoOffsetReset  = AutoOffsetReset.Earliest
            };

            using (var c = new ConsumerBuilder <Ignore, string>(conf).Build())
            {
                c.Subscribe("bolsafamilia2");

                CancellationTokenSource cts = new CancellationTokenSource();
                Console.CancelKeyPress += (_, e) =>
                {
                    e.Cancel = true;
                    cts.Cancel();
                };

                try
                {
                    while (true)
                    {
                        try
                        {
                            var cr = c.Consume(cts.Token);

                            BeneficiarioEntity beneficiario = JsonSerializer.Deserialize <BeneficiarioEntity>(cr.Value);
                            service.ExibirTotaisBolsaFamilia(beneficiario);

                            //Console.WriteLine($"Consumed message '{cr.Value}' at: '{cr.TopicPartitionOffset}'.");
                        }
                        catch (ConsumeException e)
                        {
                            Console.WriteLine($"Error occured: {e.Error.Reason}");
                        }
                    }
                }
                catch (OperationCanceledException)
                {
                    // Ensure the consumer leaves the group cleanly and final offsets are committed.
                    c.Close();
                }
            }
        }
        public void ExibirTotaisBolsaFamilia(BeneficiarioEntity beneficiario)
        {
            List <CalculoPorUfEntity> listaCalculo = calcularTotaisPorUf(beneficiario);

            StringBuilder consoleTotais = new StringBuilder();

            consoleTotais.Append("|==========================================================|" + Environment.NewLine);
            consoleTotais.Append("|     UF      |     QUATIDADE TOTAL     |    VALOR PARCELA |" + Environment.NewLine);


            foreach (var calculo in listaCalculo)
            {
                consoleTotais.Append(String.Format("|     {0}      |     {1}                    |        {2:C2}                  |" + Environment.NewLine, calculo.UF
                                                   , calculo.QuantidadeBeneficiarios
                                                   , calculo.ValorTotalParcelas));
            }
            consoleTotais.Append("|==========================================================|" + Environment.NewLine);
            Console.Write(consoleTotais.ToString());
        }
        private List <CalculoPorUfEntity> calcularTotaisPorUf(BeneficiarioEntity beneficiario)
        {
            if (!lista.Any(c => c.UF == beneficiario.Uf))
            {
                lista.Add(new CalculoPorUfEntity()
                {
                    UF = beneficiario.Uf,
                    QuantidadeBeneficiarios = 1,
                    ValorTotalParcelas      = Double.Parse(beneficiario.ValorParcela)
                });
            }
            else
            {
                var index = lista.IndexOf(lista.Find(c => c.UF == beneficiario.Uf));

                CalculoPorUfEntity calculoPorUf = lista.Find(c => c.UF == beneficiario.Uf);
                calculoPorUf.QuantidadeBeneficiarios = calculoPorUf.QuantidadeBeneficiarios + 1;
                calculoPorUf.ValorTotalParcelas      = calculoPorUf.ValorTotalParcelas + Double.Parse(beneficiario.ValorParcela);

                lista[index] = calculoPorUf;
            }

            return(lista);
        }
Exemple #5
0
        internal bool LoadFile()
        {
            bool result = false;

            try
            {
                Console.WriteLine("Start Load Data");

                string   fileName        = @"C:\Users\42039\Documents\Personal\MED_SOL_TEST.txt";
                string[] contenidoLineas = File.ReadAllLines(fileName);

                int contador = 0;
                foreach (string line in contenidoLineas)
                {
                    BeneficiarioEntity rowValue = new BeneficiarioEntity();
                    try
                    {
                        //Crea una lista de la clase BeneficiarioEntity
                        rowValue = new BeneficiarioEntity
                        {
                            #region Asigna Valores a la lista
                            IdRow            = contador,
                            Remesa           = line.Substring(0, 7).Trim(),
                            idIntegrante     = line.Substring(7, 9).Trim(),
                            idFamilia        = line.Substring(16, 9).Trim(),
                            Estado           = line.Substring(25, 2).Trim(),
                            descEdo          = line.Substring(27, 21).Trim(),
                            znaAtencion      = line.Substring(48, 6).Trim(),
                            idMunicipio      = line.Substring(54, 3).Trim(),
                            descMunicipio    = line.Substring(57, 50).Trim(),
                            idLocalidad      = line.Substring(107, 4).Trim(),
                            descLocalidad    = line.Substring(111, 50).Trim(),
                            idAGEB           = line.Substring(161, 7).Trim(),
                            idColonia        = line.Substring(168, 14).Trim(),
                            descColonia      = line.Substring(182, 100).Trim(),
                            idEACP           = line.Substring(282, 4).Trim(),
                            idSucursal       = line.Substring(286, 5).Trim(),
                            idAlmRural       = line.Substring(291, 4).Trim(),
                            descAlmRural     = line.Substring(295, 50).Trim(),
                            idTienda         = line.Substring(345, 3).Trim(),
                            descTienda       = line.Substring(348, 50).Trim(),
                            folioTitular     = line.Substring(398, 16).Trim(),
                            apellidoPat      = line.Substring(414, 30).Trim(),
                            apellidoMat      = line.Substring(444, 30).Trim(),
                            nombreTitular    = line.Substring(474, 30).Trim(),
                            faseIncorp       = line.Substring(504, 2).Trim(),
                            calle            = line.Substring(506, 50).Trim(),
                            numExterior      = line.Substring(556, 15).Trim(),
                            numInterior      = line.Substring(571, 15).Trim(),
                            codPostal        = line.Substring(586, 5).Trim(),
                            telefono         = line.Substring(591, 30).Trim(),
                            fechaNacim       = line.Substring(621, 8).Trim(),
                            sexo             = line.Substring(629, 1).Trim(),
                            RFC              = line.Substring(630, 10).Trim(),
                            CURP             = line.Substring(640, 18).Trim(),
                            folioFormato     = line.Substring(658, 19).Trim(),
                            bimestreEmision  = line.Substring(677, 9).Trim(),
                            anioEmision      = line.Substring(686, 4).Trim(),
                            numText1erDoc    = line.Substring(690, 1).Trim(),
                            numText2doDoc    = line.Substring(691, 1).Trim(),
                            primerCortePar   = line.Substring(692, 8).Trim(),
                            segundoCortePar  = line.Substring(700, 8).Trim(),
                            tercerCortePar   = line.Substring(708, 8).Trim(),
                            cuartoCortePar   = line.Substring(716, 8).Trim(),
                            vigenciaEntrega  = line.Substring(724, 8).Trim(),
                            text1erBimes     = line.Substring(732, 30).Trim(),
                            text2doBimes     = line.Substring(762, 30).Trim(),
                            text3erBimes     = line.Substring(792, 30).Trim(),
                            text4toBimes     = line.Substring(822, 30).Trim(),
                            text5toBimes     = line.Substring(852, 30).Trim(),
                            text6toBimes     = line.Substring(882, 30).Trim(),
                            fecha1erBimes    = line.Substring(912, 40).Trim(),
                            fecha2doBimes    = line.Substring(952, 40).Trim(),
                            fecha3erBimes    = line.Substring(992, 40).Trim(),
                            fecha4toBimes    = line.Substring(1032, 40).Trim(),
                            fecha5toBimes    = line.Substring(1072, 40).Trim(),
                            fecha6toBimes    = line.Substring(1112, 40).Trim(),
                            numSesion        = line.Substring(1152, 10).Trim(),
                            consecutivoMedio = line.Substring(1162, 7).Trim(),
                            consecutivoKit   = line.Substring(1169, 7).Trim(),
                            idEACP2          = line.Substring(1176, 4).Trim(),
                            idSucursal2      = line.Substring(1180, 5).Trim(),
                            idEntrega        = line.Substring(1185, 1).Trim(),
                            claveDestino     = line.Substring(1186, 9).Trim(),
                            descDestino      = line.Substring(1195, 30).Trim(),
                            text7moBimes     = line.Substring(1225, 30).Trim(),
                            fecha7moBimes    = line.Substring(1255, 40).Trim(),
                            aperturaCtaId    = line.Substring(1295, 9).Trim(),
                            programa         = line.Substring(1304, 1).Trim(),
                            identImagen      = line.Substring(1305, 4).Trim(),
                            tipoCuenta       = line.Substring(1309, 1).Trim(),
                            numCuenta        = line.Substring(1310, 10).Trim(),
                            tipoMovimiento   = line.Substring(1320, 1).Trim(),
                            esquemaApoyo     = line.Substring(1321, 1).Trim(),
                            PROIIF           = line.Substring(1322, 1).Trim(),
                            canalPago        = line.Substring(1323, 1).Trim(),
                            folioJap         = line.Substring(1324, 12).Trim(),
                            #endregion
                        };
                    }
                    catch (Exception e)
                    {
                        //Crea una lista de la clase Archivo indicando que renglon tiene error y que error es
                        rowValue = new BeneficiarioEntity
                        {
                            IdRow   = contador,
                            Message = e.Message
                        };
                    }
                    finally
                    {
                        //Agrega un nuevo row BeneficiarioEntity a la lista beneficiarioList
                        beneficiarioList.Add(rowValue);
                    }

                    contador++;
                }
                result = true;
            }
            catch (Exception e)
            {
                Console.WriteLine("Error ----> : " + e.Message);
                result = false;
            }

            Console.WriteLine("End Load Data");

            return(result);
        }