Ejemplo n.º 1
0
        public async Task <ActionResult> GetOutboxUbl(Guid id)
        {
            ConvertToZipFile convertZip = new ConvertToZipFile();

            if (resToken != null)
            {
                string token = resToken.access_token;
                using (var client = new HttpClient())
                    using (var request = new HttpRequestMessage(HttpMethod.Get, $"https://efaturaservicetest.isim360.com/v1/outboxInvoice/ubl/{id}"))
                    {
                        request.Headers.Add("Authorization", $"Bearer {token}");
                        var response = await client.SendAsync(request);

                        var asString = await response.Content.ReadAsByteArrayAsync();

                        using (var stream = convertZip.UnzipFile(asString))
                        {
                            XmlSerializer serializer = new XmlSerializer(typeof(InvoiceType));
                            var           x          = (InvoiceType)serializer.Deserialize(stream);
                        }
                    }
                return(Ok("Ubl başarıyla Deserialize edilmiştir."));
            }
            else
            {
                return(Ok("Token almak için /gettoken uç noktasını çağırın"));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> TemplateUbl()
        {
            var    ublHandler         = new UblHandler();
            string invoiceBase64Model = default;
            var    currentDirectory   = Directory.GetCurrentDirectory();

            (string tmpStr, InvoiceType invoiceType) = ublHandler.CreateUbl();
            using (var stream = new MemoryStream())
            {
                //Oluşturmuş olduğumuz modeli xml dosyasına döndürme işlemine geçildi
                ConvertToZipFile convertZip = new ConvertToZipFile();
                var writer        = new XmlTextWriter(stream, Encoding.UTF8);
                var xmlSerializer = new XmlSerializer(typeof(InvoiceType));

                xmlSerializer.Serialize(writer, invoiceType, XmlNamespaceHelper.InvoiceNamespaces);
                writer.Flush();
                stream.Seek((long)0, SeekOrigin.Begin);
                string decoded = Encoding.UTF8.GetString(stream.ToArray());
                //Current Directory'de oluşturulan xml dosya örneği Template içerisine yazılıyor,
                using (System.IO.StreamWriter file =
                           new System.IO.StreamWriter($"{currentDirectory}" + @"\Template\outXml_" + invoiceType.UUID.Value.ToString() + ".xml", true))
                {
                    file.WriteLine(decoded);
                }

                //Oluşturmuş olduğumuz xml dosyasını ZipFileToByte metodu ile byte koduna dönüştürdük,
                var zipFile = convertZip.ZipFileToByte(stream, invoiceType.UUID.Value.ToString() + ".xml");

                //Streame dönüştürdüğümüz bytcodunu base64 stringe dönüştürmemiz gerekmektedir ve bu işlem burada yapılmaktadır,
                invoiceBase64Model = Convert.ToBase64String(zipFile);
            }
            //oluşturulan base64 model çıktısını Template klasörü içer,isine yazıyoruz postman içerisinde  InvoiceZip içerisinde gönderilebilir.
            using (System.IO.StreamWriter file =
                       new System.IO.StreamWriter($"{currentDirectory}" + @"\Template\invoiceBase64Model_" + invoiceType.UUID.Value.ToString() + ".txt", true))
            {
                file.WriteLine(invoiceBase64Model);
            }
            return(Ok("Template dosyaları OutFiles klasörüne ilgili fatura numarası ile oluşturuldu"));
        }