Files
BeWoPlaner/Service/ServiceImplementations/ApiServiceImp.cs
Rene Evertz ec1174f581 TextViewer Fix -> Nice zum Debuggen :)
BeWoApp.MainControl.WindowService.ShowTextViewer
2025-05-27 13:27:31 +02:00

70 lines
2.0 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 ApiServiceImp : IApiService
{
public ApiResponse<string> Test()
{
return ApiResponse<string>.SuccessResponse("Api Service Test erfolgreich!");
}
public ApiResponse<decimal> GetGkvAbrechnungSumme(AdminServiceSumReqDC request)
{
if (request == null)
{
throw new ArgumentException("request darf nicht null sein");
}
if(!Utils.TryParseISO8601(request.Start, out var start))
{
throw new ArgumentException("start entspricht nicht ISO8601 Norm.");
}
if (!Utils.TryParseISO8601(request.End, out var end))
{
throw new ArgumentException("end entspricht nicht ISO8601 Norm.");
}
var sum = DAOFactory.ScriptDAO.GetGkvSumByDateRange(start, end);
return ApiResponse<decimal>.SuccessResponse(sum ?? 0);
}
public ApiResponse<byte[]> 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}\"");
var data = File.ReadAllBytes(filePath);
return ApiResponse<byte[]>.SuccessResponse(data);
}
public ApiResponse<byte[]> DownloadReport2() => DownloadReport();
}
}