Merhaba dostlar,
Bu yazımda sizlere Aras Kargo'nun entegrasyon uygulaması örneğini göstereceğim,
using System;
using System.Data;
using System.Threading.Tasks;
using System.Windows.Forms;
using ArasKargoEntegrasyonServisi.AraskargoService; // Servis referansı
using System.ServiceModel; // CommunicationException için gerekli
namespace ArasKargoEntegrasyonServisi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Button tıklama olayı: Veriyi servisten çeker ve DataGridView'e ekler
private async void btnLoadData_Click(object sender, EventArgs e)
{
string loginInfo = @"<LoginInfo>
<UserName>kullanıcı_adı</UserName>
<Password>sifre</Password>
<CustomerCode>musterikodu</CustomerCode>
</LoginInfo>";
string queryInfo = @"<QueryInfo>
<QueryType>39</QueryType>
<TrackingNumber>takip_no</TrackingNumber>
</QueryInfo>";
// Servisten veriyi getir
string result = await GetShipmentDetailsAsync(loginInfo, queryInfo);
if (!string.IsNullOrEmpty(result))
{
// Gelen veriyi bir DataSet'e veya DataTable'a aktar
DataSet dataSet = new DataSet();
dataSet.ReadXml(new System.IO.StringReader(result));
// DataGridView'e ekle
if (dataSet.Tables.Count > 0)
{
dataGridView1.DataSource = dataSet.Tables[0];
}
else
{
MessageBox.Show("Gelen veri boş.");
}
}
else
{
MessageBox.Show("Sonuç alınamadı.");
}
}
// Servis çağrısı yapan fonksiyon
public static async Task<string> GetShipmentDetailsAsync(string loginInfo, string queryInfo)
{
var client = new ArasCargoIntegrationServiceClient();
try
{
var response = await client.GetQueryXMLAsync(loginInfo, queryInfo);
return response;
}
catch (Exception ex)
{
MessageBox.Show("Hata: " + ex.Message);
return null;
}
finally
{
try
{
client.Close();
}
catch (CommunicationException)
{
client.Abort();
}
catch (TimeoutException)
{
client.Abort();
}
catch (Exception)
{
client.Abort();
throw;
}
}
}
}
}
Hiç yorum yok:
Yorum Gönder
Merhaba Arkadaşlar;
Lütfen yorumda bulunurken saygı ve sevgi çerçevesinden yorumda bulununuz. Lütfen emeğe saygı gösteriniz.