/// <summary> /// Gerar o Hash do QRCode e montar o Link para inseri-lo no XML /// </summary> /// <param name="linkUF">Link de consulta da UF</param> /// <param name="identificadorCSC">CSC</param> /// <param name="tokenCSC"></param> /// <param name="linkUFManual">Link de consulta manual da UF, usado na NFCe</param> public void GerarLinkConsulta(string linkUF, string identificadorCSC, string tokenCSC, string linkUFManual) { if (!CalcularLink()) { return; } Populate(); int versaoQRCode = 2; if (File.Exists(Propriedade.PastaExecutavel + "\\gerar_qrcode_100.txt")) { versaoQRCode = 1; } if (versaoQRCode.Equals(2)) { if (tpEmis.Equals("9")) { ParametrosQR = ChaveAcesso + "|" + "2" + "|" + TpAmb + "|" + DhEmi.Substring(8, 2) + "|" + vNF + "|" + Functions.ComputeHexadecimal(digVal) + "|" + Convert.ToInt32(tokenCSC).ToString(); } else { ParametrosQR = ChaveAcesso + "|" + "2" + "|" + TpAmb + "|" + Convert.ToInt32(tokenCSC).ToString(); } HashQRCode = Criptografia.GetSHA1HashData(ParametrosQR + identificadorCSC, true); ParametrosLinkConsulta = linkUF + "?p=" + ParametrosQR.Trim() + "|" + HashQRCode.Trim(); } else { ParametrosQR = "chNFe=" + ChaveAcesso + "&nVersao=100" + "&tpAmb=" + TpAmb + (string.IsNullOrEmpty(CNPJ) ? (string.IsNullOrEmpty(CPF) ? (string.IsNullOrEmpty(idEstrangeiro) ? "" : "&cDest=" + idEstrangeiro) : "&cDest=" + CPF) : "&cDest=" + CNPJ) + "&dhEmi=" + Functions.ComputeHexadecimal(DhEmi) + "&vNF=" + vNF + "&vICMS=" + vICMS + "&digVal=" + Functions.ComputeHexadecimal(digVal) + "&cIdToken=" + tokenCSC; HashQRCode = Criptografia.GetSHA1HashData(ParametrosQR + identificadorCSC, true); ParametrosLinkConsulta = linkUF + "?" + ParametrosQR.Trim() + "&cHashQRCode=" + HashQRCode.Trim(); } AddLinkQRCode(linkUFManual, versaoQRCode); }
/// <summary> /// Parsing json objects from current string /// </summary> public List <Product> JsonGrabbingProcess() { List <Product> _products = new List <Product>(); try { string text = System.IO.File.ReadAllText(@"D:\\Project\\WebDeneme\\Totvs\\TOTVSLabSalesProject\\sample.json"); dynamic coreArray = JsonConvert.DeserializeObject(text); foreach (var jsonProduct in coreArray) { Product product = new Product(); //[JsonProperty("valorTotal")] Complemento complemento = new Complemento { ValorTotal = jsonProduct.complemento["valorTotal"] }; //[JsonProperty("dets")] List <Det> detList = new List <Det>(); foreach (var detInnerCol in jsonProduct.dets) { Det det = new Det { NItem = detInnerCol.nItem }; Prod prod = new Prod { IndTot = detInnerCol.prod["indTot"], QCom = detInnerCol.prod["qCom"], UCom = detInnerCol.prod["uCom"], VProd = detInnerCol.prod["vProd"], VUnCom = detInnerCol.prod["vUnCom"], XProd = detInnerCol.prod["xProd"] }; det.Prod = prod; detList.Add(det); } //[JsonProperty("emit")] Emit emit = new Emit { Cnpj = jsonProduct.emit["cnpj"], XFant = jsonProduct.emit["xFant"] }; //[JsonProperty("enderEmit")] EnderEmit enderEmit = new EnderEmit() { Fone = jsonProduct.emit["enderEmit"]["fone"], XBairro = jsonProduct.emit["enderEmit"]["xBairro"], XLgr = jsonProduct.emit["enderEmit"]["xLgr"], XMun = jsonProduct.emit["enderEmit"]["xMun"], XPais = jsonProduct.emit["enderEmit"]["xPais"], Uf = jsonProduct.emit["enderEmit"]["uf"] }; emit.EnderEmit = enderEmit; //[JsonProperty("ide")] Ide ide = new Ide { NatOp = jsonProduct.ide["natOp"] }; //[JsonProperty("dhEmi")] DhEmi dhEmi = new DhEmi { Date = jsonProduct.ide["dhEmi"]["$date"] }; ide.DhEmi = dhEmi; //[JsonProperty("infAdic")] InfAdic infAdic = new InfAdic { InfCpl = jsonProduct.infAdic["infCpl"] }; //[JsonProperty("icmsTot")] IcmsTot icmsTot = new IcmsTot { VDesc = jsonProduct.total["icmsTot"]["vDesc"], VFrete = jsonProduct.total["icmsTot"]["vFrete"], VOutro = jsonProduct.total["icmsTot"]["vOutro"], VProd = jsonProduct.total["icmsTot"]["vProd"], VSeg = jsonProduct.total["icmsTot"]["vSeg"], VTotTrib = jsonProduct.total["icmsTot"]["vTotTrib"], Vbc = jsonProduct.total["icmsTot"]["vbc"], Vbcst = jsonProduct.total["icmsTot"]["vbcst"], Vcofins = jsonProduct.total["icmsTot"]["vcofins"], Vicms = jsonProduct.total["icmsTot"]["vicms"], VicmsDeson = jsonProduct.total["icmsTot"]["vicmsDeson"], Vii = jsonProduct.total["icmsTot"]["vii"], Vipi = jsonProduct.total["icmsTot"]["vipi"], Vnf = jsonProduct.total["icmsTot"]["vnf"], Vpis = jsonProduct.total["icmsTot"]["vpis"], Vst = jsonProduct.total["icmsTot"]["vst"] }; //[JsonProperty("total")] Total total = new Total { IcmsTot = icmsTot }; //[JsonProperty("complemento")] product.VersaoDocumento = jsonProduct.versaoDocumento; product.Complemento = complemento; product.Dets = detList; product.Emit = emit; product.Ide = ide; product.InfAdic = infAdic; product.Total = total; _products.Add(product); } } catch (DirectoryNotFoundException) { Console.WriteLine("Directory not found"); } catch (IOException) { Console.WriteLine("File read error - ioexception"); } catch (OutOfMemoryException) { Console.WriteLine("File read error - memoryexception"); } return(_products); }