public IActionResult Get(int id) { try { var indexAcceptPdf = Request.Headers["Accept"].ToList().IndexOf("application/pdf"); var model = facade.ReadById(id); if (indexAcceptPdf < 0) { var viewModel = mapper.Map <UnitPaymentOrderViewModel>(model); return(Ok(new { apiVersion = ApiVersion, statusCode = General.OK_STATUS_CODE, message = General.OK_MESSAGE, data = viewModel, })); } else { int clientTimeZoneOffset = int.Parse(Request.Headers["x-timezone-offset"].First()); identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value; /* tambahan */ /* get Supplier */ string supplierUri = "master/suppliers"; var httpClient = (IHttpClientService)serviceProvider.GetService(typeof(IHttpClientService)); var response = httpClient.GetAsync($"{Lib.Helpers.APIEndpoint.Core}{supplierUri}/{model.SupplierId}").Result.Content.ReadAsStringAsync(); Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(response.Result); SupplierViewModel supplier = JsonConvert.DeserializeObject <SupplierViewModel>(result.GetValueOrDefault("data").ToString()); /* tambahan */ UnitPaymentOrderPDFTemplate PdfTemplate = new UnitPaymentOrderPDFTemplate(); var stream = PdfTemplate.Generate(model, facade, supplier, clientTimeZoneOffset, identityService.Username); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = $"{model.UPONo}.pdf" }); } } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public IActionResult Get(int id) { try { var indexAcceptPdf = Request.Headers["Accept"].ToList().IndexOf("application/pdf"); var model = facade.ReadById(id); if (indexAcceptPdf < 0) { var viewModel = mapper.Map <UnitPaymentOrderViewModel>(model); return(Ok(new { apiVersion = ApiVersion, statusCode = General.OK_STATUS_CODE, message = General.OK_MESSAGE, data = viewModel, })); } else { int clientTimeZoneOffset = int.Parse(Request.Headers["x-timezone-offset"].First()); identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value; UnitPaymentOrderPDFTemplate PdfTemplate = new UnitPaymentOrderPDFTemplate(); var stream = PdfTemplate.Generate(model, facade, clientTimeZoneOffset, identityService.Username); return(new FileStreamResult(stream, "application/pdf") { FileDownloadName = $"{model.UPONo}.pdf" }); } } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }