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")); } }
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")); }