public static void Run() { DbContext context = new CtepContext(ConfigurationManager.AppSettings["connectionString"]); AlunoRepository alunoRepository = new AlunoRepository(context); BoletoRepository boletoRepository = new BoletoRepository(context); CsvParserOptions csvParserOptions = new CsvParserOptions(true, ';'); var csvParser = new CsvParser <BoletoDTO>(csvParserOptions, new CsvBoletoMapping()); var linhas = csvParser.ReadFromFile(ConfigurationManager.AppSettings["planilhaBoletos"], Encoding.UTF8); var boletos = linhas.Select(x => x.Result).ToList(); Console.WriteLine($"{boletos.Count} extraídos."); var alunos = alunoRepository.All().ToList().Select(x => new { Nome = RemoveDiacritics(x.Nome), Aluno = x }); using (var transaction = boletoRepository.GetTransaction()) { var boletosSalvos = boletoRepository.All().ToList(); var boletosAgrupados = boletos.GroupBy(x => x.NomeAluno); boletosAgrupados.ToList().ForEach(x => { var aluno = alunos.FirstOrDefault(a => a.Nome.ToUpper().Normalize(NormalizationForm.FormD) == x.Key.ToUpper().Normalize(NormalizationForm.FormD)); if (aluno != null) { Console.WriteLine($"Boletos do aluno {aluno.Aluno.Nome} encontrados ({x.ToList().Count})."); var boletosParaInserir = x.ToList().Where(x => !boletosSalvos.Any(y => y.SeuNumero == x.SeuNumero)).Select(x => { var b = x.ToEntity(); b.AlunoId = aluno.Aluno.Id; b.TipoStatusBoletoId = (int)GetStatusBoleto(x.Status); if (b.TipoStatusBoletoId != (int)TipoStatusBoletoEnum.Liquidado) { b.ValorPago = null; } b.PercentualMulta = 5; return(b); }); boletoRepository.BulkAdd(boletosParaInserir); boletoRepository.SaveChanges(); Console.WriteLine($"{boletosParaInserir.Count()} boletos inseridos."); } }); transaction.Commit(); transaction.Dispose(); } }
public Form1() { this._repository = new BoletoRepository(); this._boleto = new BLL.Boleto(); InitializeComponent(); }