50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using BeWo.Data.Access;
|
|
using BeWo.Service.ServiceContracts;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts.AdminService;
|
|
using BS.Shared.DataContracts.MikePHPContracts;
|
|
using DevExpress.Pdf.Native.BouncyCastle.Ocsp;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.ServiceModel;
|
|
using System.ServiceModel.Web;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BeWo.Service.ServiceImplementations
|
|
{
|
|
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)]
|
|
public class ApiStreamServiceImp : IApiStreamService
|
|
{
|
|
public Stream DownloadReport()
|
|
{
|
|
string filename = "xrechnung.pdf";
|
|
|
|
string filePath = Path.Combine(@"C:\Users\ownSoft\Desktop\XRechnung\", filename);
|
|
if (!File.Exists(filePath))
|
|
throw new FileNotFoundException("Datei nicht gefunden");
|
|
|
|
// Setze die Header
|
|
WebOperationContext.Current.OutgoingResponse.ContentType = "application/pdf";
|
|
WebOperationContext.Current.OutgoingResponse.Headers.Add(
|
|
"Content-Disposition", $"attachment; filename=\"{filename}\"");
|
|
|
|
FileStream f = new FileStream(filePath, FileMode.Open);
|
|
int length = (int)f.Length;
|
|
WebOperationContext.Current.OutgoingResponse.ContentLength = length;
|
|
byte[] buffer = new byte[length];
|
|
int sum = 0;
|
|
int count;
|
|
while ((count = f.Read(buffer, sum, length - sum)) > 0)
|
|
{
|
|
sum += count;
|
|
}
|
|
f.Close();
|
|
return new MemoryStream(buffer);
|
|
}
|
|
}
|
|
}
|