/// <summary> /// Gera uma fatura a partir de um arquivo .csv válido /// </summary> /// <param name="Caminho">Caminho do arquivo .csv</param> public async Task <Fatura> GerarFatura(IFormFile file, DateTime dtInicial, DateTime dtFinal) { try { var stream = await ReadAsStringAsync(file); var lines = stream.Split(Environment.NewLine).Skip(1).ToList(); lines.RemoveAt(lines.Count - 1); Fatura fatura = new Fatura(dtInicial, dtFinal); Lancamento lancamento; foreach (string line in lines) { var values = line.Split(','); var data = DateTime.Parse(values[0]); var categoria = values[1]; var descricao = NubankToolBox.DefineDescricao(values[2]); //int parcela = NubankToolBox.DefineParcela(descricao); //int numParcelas = NubankToolBox.DefineNumParcelas(descricao); var valor = NubankToolBox.FormataValor(values[3]); Responsavel responsavel = _responsavelRepository.GetByNome(NubankToolBox.DefineResponsavel(descricao)) ?? new Responsavel("Casa"); lancamento = new Lancamento(data, categoria, descricao, 0, 0, valor, fatura, new Responsavel("Casa")); fatura.Lancamentos.Add(lancamento); } return(fatura); } catch (Exception) { throw; } }