public static List <MoedaCsv> RetornaListaMoedasCSV(string DirMoedaCsv, Fila filaApi) { List <MoedaCsv> listaMoedasRetorno = new List <MoedaCsv>(); //Abrindo e lendo o arquivo CSV utilizando o diretório informado no parâmetro var listCsv = File.ReadAllLines(DirMoedaCsv) .Select(a => a.Split(';')) .Select(c => new MoedaCsv() { ID_MOEDA = c[0], DATA_REF = c[1] }) .ToList(); //Verificando quais moedas estão dentro do período do item retornado da API foreach (var item in listCsv) //Lendo a lista retornada do CSV { if (item.ID_MOEDA.Trim() == filaApi.Moeda.Trim()) //Verificando se a Moeda é a mesma retornada pela API { if (DateTime.Parse(item.DATA_REF) >= filaApi.DataInicio && DateTime.Parse(item.DATA_REF) <= filaApi.DataFim) //Se a data do CSV estiver dentro do período, adiciona na lista para retornar { MoedaCsv moedaRetorno = new MoedaCsv() { ID_MOEDA = item.ID_MOEDA, DATA_REF = item.DATA_REF }; listaMoedasRetorno.Add(moedaRetorno); } } } return(listaMoedasRetorno); }
public static void GeraArquivoCotacaoCsv(string DirCotacaoCsv, List <MoedaCsv> moedasCsv) { DateTime localDate = DateTime.Now; string fileName = "Resultado_" + localDate.ToString("yyyyMMdd_HHmmss"); List <MoedaCsv> listaOutPut = new List <MoedaCsv>(); foreach (var item in moedasCsv) //Lendo a lista de moedas selecionadas no CSV { MoedaDePara moedaDePara = DeParaMoedas.GetLista(item.ID_MOEDA); //Resgatando a lista de de/para das moedas var cotacaoMoeda = RetornaCotacaoMoeda(DirCotacaoCsv, moedaDePara.COD_COTACAO.ToString(), DateTime.Parse(item.DATA_REF)); //Retornando os dados da cotação da moeda e data informados //Adicionando a moeda com data e valor da cotacao para o csv de saída MoedaCsv moedaOutPut = new MoedaCsv() { ID_MOEDA = item.ID_MOEDA, DATA_REF = item.DATA_REF, VL_COTACAO = cotacaoMoeda.VLR_COTACAO }; listaOutPut.Add(moedaOutPut); } ExportCsv(listaOutPut, fileName); }