AlpataReport¶
- .NET Core uygulamasında rapor kullanabilmek için
Adres: https://report.alpatateknoloji.com
Adresine istek atılması gerekmektedir.
Swagger UI: https://report.alpatateknoloji.com/swagger
- Gönderilmesi Gerekenler:
-
Headers:
ParametreModel - List<ParametreModel> RaporBaslik - string RaporKodu - string RaporAdi - string Klasor - string -
Content:
DataSet - byte[] -
Api tarafında yazılması gereken örnek istek:
Pdf İçin:
string BaglantiAdresi = "Server=192.168.1.38;Database=BBS2023;User Id=alpata;Password=master;";
SqlConnection Baglanti = new SqlConnection();
Baglanti.ConnectionString = BaglantiAdresi;
Baglanti.Open();
StringBuilder sb = new StringBuilder();
sb.Append("SELECT LEN(dbo.TblMizan.HesapKodu) AS HesKoduUzunlugu, dbo.TblMizan.Tarih, dbo.TblMizan.FisNo, dbo.TblMizan.FisSira,");
sb.Append(" dbo.TblFisSira.FisTurSira, dbo.TblMizan.FisTur, dbo.TblMizan.HesapKodu, dbo.TblMizan.Borc, dbo.TblMizan.Alacak, dbo.TblHesapPlan.UstHesap,");
sb.Append(" SUBSTRING(dbo.TblMizan.HesapKodu, 1, 3) AS AnaHesap, dbo.TblHesapPlan.HesAdi, TblHesapPlan_1.HesAdi AS AnaHesapAdi,");
sb.Append(" dbo.TblFisSira.FisTurAdi, MONTH(dbo.TblMizan.Tarih) AS Ay, dbo.TblFisMuhasebe.OzelKod1,dbo.TblFisDetay.Aciklama");
sb.Append(" FROM dbo.TblMizan INNER JOIN");
sb.Append(" dbo.TblFisSira ON dbo.TblMizan.FisTur = dbo.TblFisSira.FisTur INNER JOIN");
sb.Append(" dbo.TblHesapPlan ON dbo.TblMizan.HesapKodu = dbo.TblHesapPlan.HesKodu INNER JOIN");
sb.Append(" dbo.TblHesapPlan AS TblHesapPlan_1 ON SUBSTRING(dbo.TblMizan.HesapKodu, 1, 3) = TblHesapPlan_1.HesKodu INNER JOIN");
sb.Append(" dbo.TblFisMuhasebe ON dbo.TblMizan.FisNo = dbo.TblFisMuhasebe.FisNo AND dbo.TblMizan.FisTur = dbo.TblFisMuhasebe.FisTur INNER JOIN");
sb.Append(" dbo.TblFisDetay ON dbo.TblMizan.FisNo = dbo.TblFisDetay.FisNo AND dbo.TblMizan.FisSira = dbo.TblFisDetay.FisSira AND dbo.TblMizan.FisTur = dbo.TblFisDetay.FisTur");
sb.Append(" WHERE (LEN(dbo.TblMizan.HesapKodu) >= 9) AND (dbo.TblFisSira.FisTurSira IS NOT NULL)");
sb.Append(" ORDER BY dbo.TblMizan.Tarih, dbo.TblMizan.FisNo, dbo.TblFisSira.FisTurSira, dbo.TblMizan.FisSira");
DataSet Ds = new DataSet();
SqlDataAdapter dataAdapt = new SqlDataAdapter(sb.ToString(), Baglanti);
DataTable Dt = new DataTable();
dataAdapt.Fill(Dt);
Ds.Tables.Add(Dt);
Ds.Tables[0].TableName = "GrnMYevmiye";
byte[] a = ConvertDataSetToByteArray(Ds);
List<ParametreModel> b = new List<ParametreModel>();
b.Add(new ParametreModel { Deger = "1234", ParametreAdi = "BorsaAdi" });
var client = new HttpClient
{
BaseAddress = new Uri("https://report.alpatateknoloji.com/")
};
client.Timeout = TimeSpan.FromHours(90);
using (var content = new ByteArrayContent(a))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("RaporKodu", "Rapor");
client.DefaultRequestHeaders.Add("Klasor", "123");
client.DefaultRequestHeaders.Add("RaporAdi", "RptMuhYevmiyeDefteri");
client.DefaultRequestHeaders.Add("RaporBaslik", "Rapor");
client.DefaultRequestHeaders.Add("ParametreModel", Newtonsoft.Json.JsonConvert.SerializeObject(b));
var result = await client.PostAsync("PostCreateReport", content);
var contentStream = await result.Content.ReadAsStreamAsync(); // get the actual content stream
var dstFilename = "RptMuhYevmiyeDefteri.pdf";
if (System.IO.File.Exists(dstFilename)) System.IO.File.Delete(dstFilename);
using var sw = new System.IO.FileStream(dstFilename, System.IO.FileMode.Create);
await contentStream.CopyToAsync(sw);
sw.Close();
var file = System.IO.File.ReadAllBytes("RptMuhYevmiyeDefteri.pdf");
HttpContext.Response.Headers.ContentDisposition = "inline;filename=RptMuhYevmiyeDefteri.pdf";
return File(file, "application/pdf", "RptMuhYevmiyeDefteri.pdf");
}
Excel İçin:
string BaglantiAdresi = "Server=192.168.1.38;Database=BBS2023;User Id=alpata;Password=master;";
SqlConnection Baglanti = new SqlConnection();
Baglanti.ConnectionString = BaglantiAdresi;
Baglanti.Open();
StringBuilder sb = new StringBuilder();
sb.Append("SELECT LEN(dbo.TblMizan.HesapKodu) AS HesKoduUzunlugu, dbo.TblMizan.Tarih, dbo.TblMizan.FisNo, dbo.TblMizan.FisSira,");
sb.Append(" dbo.TblFisSira.FisTurSira, dbo.TblMizan.FisTur, dbo.TblMizan.HesapKodu, dbo.TblMizan.Borc, dbo.TblMizan.Alacak, dbo.TblHesapPlan.UstHesap,");
sb.Append(" SUBSTRING(dbo.TblMizan.HesapKodu, 1, 3) AS AnaHesap, dbo.TblHesapPlan.HesAdi, TblHesapPlan_1.HesAdi AS AnaHesapAdi,");
sb.Append(" dbo.TblFisSira.FisTurAdi, MONTH(dbo.TblMizan.Tarih) AS Ay, dbo.TblFisMuhasebe.OzelKod1,dbo.TblFisDetay.Aciklama");
sb.Append(" FROM dbo.TblMizan INNER JOIN");
sb.Append(" dbo.TblFisSira ON dbo.TblMizan.FisTur = dbo.TblFisSira.FisTur INNER JOIN");
sb.Append(" dbo.TblHesapPlan ON dbo.TblMizan.HesapKodu = dbo.TblHesapPlan.HesKodu INNER JOIN");
sb.Append(" dbo.TblHesapPlan AS TblHesapPlan_1 ON SUBSTRING(dbo.TblMizan.HesapKodu, 1, 3) = TblHesapPlan_1.HesKodu INNER JOIN");
sb.Append(" dbo.TblFisMuhasebe ON dbo.TblMizan.FisNo = dbo.TblFisMuhasebe.FisNo AND dbo.TblMizan.FisTur = dbo.TblFisMuhasebe.FisTur INNER JOIN");
sb.Append(" dbo.TblFisDetay ON dbo.TblMizan.FisNo = dbo.TblFisDetay.FisNo AND dbo.TblMizan.FisSira = dbo.TblFisDetay.FisSira AND dbo.TblMizan.FisTur = dbo.TblFisDetay.FisTur");
sb.Append(" WHERE (LEN(dbo.TblMizan.HesapKodu) >= 9) AND (dbo.TblFisSira.FisTurSira IS NOT NULL)");
sb.Append(" ORDER BY dbo.TblMizan.Tarih, dbo.TblMizan.FisNo, dbo.TblFisSira.FisTurSira, dbo.TblMizan.FisSira");
DataSet Ds = new DataSet();
SqlDataAdapter dataAdapt = new SqlDataAdapter(sb.ToString(), Baglanti);
DataTable Dt = new DataTable();
dataAdapt.Fill(Dt);
Ds.Tables.Add(Dt);
Ds.Tables[0].TableName = "GrnMYevmiye";
byte[] a = ConvertDataSetToByteArray(Ds);
List<ParametreModel> b = new List<ParametreModel>();
b.Add(new ParametreModel { Deger = "1234", ParametreAdi = "BorsaAdi" });
var client = new HttpClient
{
BaseAddress = new Uri("https://report.alpatateknoloji.com/")
};
client.Timeout = TimeSpan.FromHours(90);
using (var content = new ByteArrayContent(a))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("RaporKodu", "Rapor");
client.DefaultRequestHeaders.Add("Klasor", "123");
client.DefaultRequestHeaders.Add("RaporAdi", "RptMuhYevmiyeDefteri");
client.DefaultRequestHeaders.Add("RaporBaslik", "Rapor");
client.DefaultRequestHeaders.Add("ParametreModel", Newtonsoft.Json.JsonConvert.SerializeObject(b));
var result = await client.PostAsync("PostCreateReportExcel", content);
var contentStream = await result.Content.ReadAsStreamAsync(); // get the actual content stream
var dstFilename = "RptMuhYevmiyeDefteri.xls";
if (System.IO.File.Exists(dstFilename)) System.IO.File.Delete(dstFilename);
using var sw = new System.IO.FileStream(dstFilename, System.IO.FileMode.Create);
await contentStream.CopyToAsync(sw);
sw.Close();
var file = System.IO.File.ReadAllBytes("RptMuhYevmiyeDefteri.xls");
HttpContext.Response.Headers.ContentDisposition = "inline;filename=RptMuhYevmiyeDefteri.xls";
return File(file, "application/vnd.ms-excel", "RptMuhYevmiyeDefteri.xls");
}
private byte[] ConvertDataSetToByteArray(DataSet dataSet)
{
byte[] binaryDataResult = null;
using (MemoryStream memStream = new MemoryStream())
{
BinaryFormatter brFormatter = new BinaryFormatter();
dataSet.RemotingFormat = SerializationFormat.Binary;
brFormatter.Serialize(memStream, dataSet);
binaryDataResult = memStream.ToArray();
}
return binaryDataResult;
}
- ParametreModel class:
/// <summary> /// ParametreModel /// </summary> public class ParametreModel { /// <summary> /// ParametreAdi /// </summary> public string ParametreAdi { get; set; } /// <summary> /// Deger /// </summary> public string Deger { get; set; } }
Proje Property aşağıdaki satır eklenir.
<PropertyGroup>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
Mongo Db Aktif Connection Getirmek İçin:
var baglantiAdresi = await NoSqlService.GetString($"DbInfo:{tokenInfo.IsletmeKodu}", collection: "main") + configuration["Alpata.Data:DbSecurity"];