Exemplo n.º 1
0
        public async Task <IActionResult> PostZip()
        {
            if (resToken != null)
            {
                //UBL oluşturmak için kullanığımız Metodumuzu Çağırıyoruz

                var ublHandler = new UblHandler();
                (string invoiceBase64Model, _) = ublHandler.CreateUbl();

                //Http.Post requestini oluşturmak için isteğin Bodysini oluşturuyoruz,

                OutboxInvoiceZipModel model = new OutboxInvoiceZipModel();
                model.InvoiceZip            = invoiceBase64Model;
                model.Status                = 0;
                model.CheckLocalReferenceId = false;
                model.Prefix                = "";
                model.UseManualInvoiceId    = true;
                // model.TargetAlias = "urn:mail:[email protected]"; //Birden fazla posta kutusu varsa TargetAlias'ta belirtilen posta kutusu kullanılır eğer gönderilmezse userfirstAlias true yapılmalı
                model.AppType       = 2;
                model.UseFirstAlias = true;//birden fazla posta Kutusu varsa true yollandığında ilk posta kutusuna otomatik fatura kesilerek taslak olarak kaydedilir
                model.EArsivInfo    = new EArsivInfoModel()
                {
                    SendEMail = false
                };

                string token       = resToken.access_token;
                string parsedModel = JsonConvert.SerializeObject(model);

                using (var client = new HttpClient())
                    using (var request = new HttpRequestMessage(HttpMethod.Post, "https://efaturaservicetest.isim360.com/v1/outboxInvoice"))
                    {
                        if (!String.IsNullOrEmpty(parsedModel))
                        {
                            var content = new StringContent(parsedModel, Encoding.UTF8, "application/json");
                            request.Content = content;
                        }
                        request.Headers.Add("Authorization", $"Bearer {token}");
                        var response = await client.SendAsync(request);

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

                        var x = JsonConvert.DeserializeObject(asString);
                        return(Ok(x));
                    }
            }
            else
            {
                return(Ok("Token almak için /gettoken uç noktasını çağırın"));
            }
        }
Exemplo 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"));
        }