/* * Metodo que consome a API arquivei para retornar as notas fiscais eletronicas. */ public Entity.ReceivedResponse GetNFeFromAPI() { string apiBaseURL = null; Entity.ReceivedResponse resp = null; try { Console.WriteLine("Buscando as notas na API da Arquivei..."); apiBaseURL = "https://sandbox-api.arquivei.com.br/v1"; var client = new RestClient(apiBaseURL); RestRequest request = new RestRequest("nfe/received"); request = this.InsertHeaders(request); //Executa o request. var response = client.Get(request); //Transforma a resposta em um objeto chamado ReceivedResponse resp = JsonConvert.DeserializeObject <Entity.ReceivedResponse>(response.Content); Console.WriteLine("Notas recebidas com sucesso!"); return(resp); } catch (Exception e) { Console.WriteLine("Erro ao obter valores da nota fiscal eletronica: {0}", e); throw; } }
static void Main(string[] args) { Console.WriteLine("Desafio Arquivei"); try { Receiver reciever = new Receiver(); Entity.ReceivedResponse resp = reciever.GetNFeFromAPI(); reciever.InsertNFeDataBase(resp); } catch (Exception) { } }
public void InsertNFeDataBase(Entity.ReceivedResponse respAPI) { int i = 0; try { Console.WriteLine("Inserindo notas na base de dados..."); //Para cada nota devolvida. //Obtem a chave de acesso e o valor total da nota. //Sava a nota no banco de dados. foreach (Entity.ReceivedResponse.Datum item in respAPI.data) { i += 1; //Obtem a chave de acesso. string accessKey = item.access_key; try { //Obtem o valor total da nota. double valorNF = GetNFTotalValue(item.xml); Console.WriteLine("AccessKey(" + i + "):" + accessKey); Console.WriteLine("NFe Value: " + valorNF); //Atribui os valores ao objeto nota fiscal. NotaFiscal nf = new NotaFiscal(); nf.access_key = accessKey; nf.total_nota = valorNF; //Insere a nota(chave e valor) na base de dados. DAOBase <NotaFiscal> dao = new DAOBase <NotaFiscal>(); dao.Insert(nf); } catch (Exception e) { Console.WriteLine("AccessKey(" + i + "):" + accessKey); Console.WriteLine("Error: " + e.Message); } } } catch (Exception e) { Console.WriteLine("Erro ao inserir nota na base de dados: {0}", e); throw; } }