Combine แบบประเมิน

This commit is contained in:
Nakorn Rientrakrunchai
2020-08-29 20:11:13 +07:00
parent 933c9f7b4f
commit 62cda08ea0
6 changed files with 65 additions and 37 deletions

View File

@@ -107,34 +107,14 @@ namespace TodoAPI2.Controllers
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var p1 = GetParameter(Convert.ToInt16(model.detail_id));
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
//string url = $"{mainurl}{reportsite}/rep_eva_x1.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
//var data = httpclient.DownloadData(url);
//var stream = new MemoryStream(data);
//return File(stream, model.contentType);
var stream = new MemoryStream();
Document document = new Document();
PdfCopy writer = new PdfCopy(document, stream);
document.Open();
var rep_type = new int[] { 1, 2, 3, 4, 5};
foreach (var k in rep_type)
foreach (var k in model.detail_id)
{
string url = $"{mainurl}{reportsite}/rep_eva_x{k}.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
var data = httpclient.DownloadData(url);
var data = GetReport(k, model);
PdfReader reader = new PdfReader(data);
reader.ConsolidateNamedDestinations();
@@ -163,6 +143,49 @@ namespace TodoAPI2.Controllers
}
}
private byte[] GetReport(int detail_id, rep_eva_xReportRequestModel model)
{
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
var p1 = GetParameter(detail_id);
var stream = new MemoryStream();
Document document = new Document();
PdfCopy writer = new PdfCopy(document, stream);
document.Open();
var rep_type = new int[] { 1, 2, 3, 4, 5 };
foreach (var k in rep_type)
{
string url = $"{mainurl}{reportsite}/rep_eva_x{k}.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
var data = httpclient.DownloadData(url);
PdfReader reader = new PdfReader(data);
reader.ConsolidateNamedDestinations();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
PdfImportedPage page = writer.GetImportedPage(reader, i);
writer.AddPage(page);
}
reader.Close();
}
writer.Close();
document.Close();
var data2 = stream.ToArray();
return data2;
}
private rep_eva_xInputModel2 GetParameter(int detail_id)
{
var i = new rep_eva_xInputModel2();
@@ -176,10 +199,10 @@ namespace TodoAPI2.Controllers
i.employee_position_level = p.employee_position_level;
i.employee_org = p.employee_org;
i.employee_position = p.employee_position;
if (!string.IsNullOrEmpty(p.employee_profile_picture))
{
i.image_url = MyHelper.GetConfig(Configuration, "SiteInformation:mainsite") + "/api/image/" + p.employee_profile_picture;
}
//if (!string.IsNullOrEmpty(p.employee_profile_picture))
//{
// i.image_url = MyHelper.GetConfig(Configuration, "SiteInformation:mainsite") + "/api/image/" + p.employee_profile_picture;
//}
i.chief_fullname = p.chief_fullname;
i.chief_position = p.chief_position;
i.supervisor2_fullname = p.supervisor2_fullname;