ServerUtils -> Kein Merged Config, Sicherheit

TextJson bei ServerUtils
This commit is contained in:
2025-11-28 14:54:24 +01:00
parent 654b41d239
commit 1ebc41e40e
71 changed files with 293 additions and 158 deletions

View File

@@ -54,6 +54,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>

59
AiCoreUnitTest/app.config Normal file
View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.AttributedModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.TypedParts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Hosting" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -6,7 +6,6 @@ using System.Web.UI;
using BeWo.Data;
using BS.Shared.Core;
using BeWo.Service.Security;
using SecurityUtils = BeWo.Service.Security.SecurityUtils;
public partial class Download : Page

View File

@@ -12,7 +12,6 @@ using BS.Shared.DataContracts;
using BeWo.Data;
using BeWo.Report;
using BeWo.Service.Security;
using DevExpress.XtraPrinting;
using DevExpress.XtraReports.UI;

View File

@@ -3,7 +3,6 @@ using System.IO;
using System.Linq;
using BeWo.Data.Entities;
using BeWo.Service.Security;
using BS.Shared;

View File

@@ -389,6 +389,7 @@
<add key="SendMailModuleGkvReceiver" value="dakota.exchange@ownsoft.de" />
<add key="OpenWebUIUrl" value="https://owui1.ownsoft.de/"/>
<add key="OllamaUrl" value="https://w2.ownchat.de" />
<add key="XRechnungApiUrl" value="https://test2.evplaner.de/xrg/"/>
<add key="StoredTenantFilesFolderPath" value="C:\BeWoPlaner\StoredTenantFiles"/>

View File

@@ -400,22 +400,22 @@
<add key="OpenWebUIUrl" value="https://owui1.ownsoft.de/" />
<add key="OllamaUrl" value="https://w2.ownchat.de" />
<add key="XRechnungApiUrl" value="https://test2.evplaner.de/xrg/"/>
<add key="StoredFilesFolderPath" value="C:\BeWoPlaner\StoredFiles"/>
<add key="StoredTenantFilesFolderPath" value="C:\BeWoPlaner\StoredTenantFiles"/>
<add key="HelloWorldPdfLocation" value="C:\BeWoPlaner\StoredFiles\HelloWorld.pdf"/>
<add key="XRechnungApiUrl" value="https://test2.evplaner.de/xrg/" />
<add key="StoredFilesFolderPath" value="C:\BeWoPlaner\StoredFiles" />
<add key="StoredTenantFilesFolderPath" value="C:\BeWoPlaner\StoredTenantFiles" />
<add key="HelloWorldPdfLocation" value="C:\BeWoPlaner\StoredFiles\HelloWorld.pdf" />
<!--<add key="ServiceLogFilePath" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\logs\service.log.txt"/>
<add key="WCFErrorLogFilePath" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\logs\wcferror.log.txt"/>
<add key="JsonErrorLogFilePath" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\logs\jsonerror.log.txt"/>
<add key="ApiServiceTestFilePath" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\logs\apiservice.test.txt"/>-->
<add key="ServiceLogFilePath" value="C:\BeWoPlaner\logs\service.log.txt"/>
<add key="WCFErrorLogFilePath" value="C:\BeWoPlaner\logs\wcferror.log.txt"/>
<add key="JsonErrorLogFilePath" value="C:\BeWoPlaner\logs\jsonerror.log.txt"/>
<add key="ApiServiceTestFilePath" value="C:\BeWoPlaner\logs\apiservice.test.txt"/>
<add key="ServiceLogFilePath" value="C:\BeWoPlaner\logs\service.log.txt" />
<add key="WCFErrorLogFilePath" value="C:\BeWoPlaner\logs\wcferror.log.txt" />
<add key="JsonErrorLogFilePath" value="C:\BeWoPlaner\logs\jsonerror.log.txt" />
<add key="ApiServiceTestFilePath" value="C:\BeWoPlaner\logs\apiservice.test.txt" />
<add key="AiRootPath" value="C:\BeWoPlaner\AI" />
<add key="BeWoPlanerServiceRoot" value="C:\BeWoPlaner" />
<add key="AiServiceLogFilePath" value="C:\BeWoPlaner\logs2\server\aiservice.log.txt" />
<add key="AiServiceLastRequestEnabled" value="true" />

View File

@@ -109,10 +109,11 @@
<Compile Include="Facade\LLM\BaseLLMApiClient.cs" />
<Compile Include="Facade\LLM\OllamaApiClient.cs" />
<Compile Include="Facade\LLM\OpenWebApiClient.cs" />
<Compile Include="Prompt\Core\AiFunctionSystemInstructionBuilder.cs" />
<Compile Include="Prompt\SystemInstruction\AiFunctionSystemInstructionBuilder.cs" />
<Compile Include="Prompt\Core\AiUtils.cs" />
<Compile Include="Prompt\Core\AiConversationSystemInstructionBuilder.cs" />
<Compile Include="Prompt\SystemInstruction\AiConversationSystemInstructionBuilder.cs" />
<Compile Include="Prompt\Models\AiConversationContext.cs" />
<Compile Include="Prompt\SystemInstruction\BaseSystemInstructionBuilder.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,6 +1,5 @@
using AICore.Context.Summary;
using AICore.Context.SummaryParser;
using BeWo.ServerUtils.Core;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.Exceptions;
@@ -13,15 +12,19 @@ using System.Reflection;
using System.Text;
using System.Text.Json;
namespace AICore.Prompt.Core
namespace AICore.Prompt.SystemInstruction
{
public class AiConversationSystemInstructionBuilder
public class AiConversationSystemInstructionBuilder : BaseSystemInstructionBuilder
{
public AiConversationSystemInstructionBuilder(string prompt_path) : base(prompt_path) {
}
public string CreateSystemInstructions(AiContextType uicontext, BaseContextSummary context, AiDataContextType aiDataContextType)
{
var sb = new StringBuilder();
sb.AppendLine(getCustomSystemPrompt());
sb.AppendLine(getCustomSystemPrompt("customSystemInstruction.txt"));
sb.AppendLine("### **Allgemein**");
sb.AppendLine($"- Aktuelle Zeit: {DateTime.Now}");
@@ -69,13 +72,5 @@ namespace AICore.Prompt.Core
throw BeWoNotImplementedException.CreateFromEnum(aiDataContextType);
}
private string getCustomSystemPrompt()
{
var root = MergedConfig.GetSetting("AiRootPath");
var path = Path.Combine(root, "systemPrompts", "customSystemInstruction.txt");
return File.ReadAllText(path);
}
}
}

View File

@@ -1,7 +1,6 @@
using AICore.Context.Summary;
using AICore.Context.Summary.Function;
using AICore.Context.SummaryParser;
using BeWo.ServerUtils.Core;
using BS.Shared;
using BS.Shared.Core;
using Newtonsoft.Json.Linq;
@@ -12,15 +11,20 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AICore.Prompt.Core
namespace AICore.Prompt.SystemInstruction
{
public class AiFunctionSystemInstructionBuilder
public class AiFunctionSystemInstructionBuilder : BaseSystemInstructionBuilder
{
public string CreateServiceRecordDocumentationSystemInstructions(AiFunctionType functionType, BaseContextSummary context)
public AiFunctionSystemInstructionBuilder(string prompt_path) : base(prompt_path)
{
}
public string CreateServiceRecordDocumentationSystemInstructions(BaseContextSummary context)
{
var sb = new StringBuilder();
sb.AppendLine(getCustomSystemPrompt());
sb.AppendLine(getCustomSystemPrompt("customFunctionSystemInstruction.txt"));
sb.AppendLine("### **Allgemein**");
sb.AppendLine($"- Aktuelle Zeit: {DateTime.Now}");
@@ -47,13 +51,5 @@ namespace AICore.Prompt.Core
return sb.ToString();
}
private string getCustomSystemPrompt()
{
var root = MergedConfig.GetSetting("AiRootPath");
var path = Path.Combine(root, "systemPrompts", "customFunctionSystemInstruction.txt");
return File.ReadAllText(path);
}
}
}

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AICore.Prompt.SystemInstruction
{
public class BaseSystemInstructionBuilder
{
public string SystemPromptFolderPath { get; set; }
public BaseSystemInstructionBuilder(string systemPromptFolderPath)
{
SystemPromptFolderPath = systemPromptFolderPath;
}
protected string getCustomSystemPrompt(string file)
{
var systemPrompts = SystemPromptFolderPath;
var path = Path.Combine(systemPrompts, file);
return File.ReadAllText(path);
}
}
}

View File

@@ -2,7 +2,6 @@
using BS.Shared.DataContracts;
using BS.Shared.Exceptions;
using BS.Shared.Interface;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
@@ -15,6 +14,7 @@ using System.Runtime.CompilerServices;
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace BeWo.ServerUtils.ApiFacade
@@ -63,7 +63,7 @@ namespace BeWo.ServerUtils.ApiFacade
var json = await http_response.Content.ReadAsStringAsync().ConfigureAwait(false);
return parse(() => JsonConvert.DeserializeAnonymousType<T>(json, anonymousType), json, extractor);
return parse(() => JsonSerializer.Deserialize<T>(json, JsonSerializerOptions.Default), json, extractor);
}
/// <summary>

View File

@@ -1,5 +1,5 @@
using Newtonsoft.Json;
using System.Net.Http;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;
namespace BeWo.ServerUtils.ApiFacade
@@ -31,7 +31,7 @@ namespace BeWo.ServerUtils.ApiFacade
// Add body if POST or PUT
if (Method == HttpMethod.Post || Method == HttpMethod.Put)
{
var json = JsonConvert.SerializeObject(JsonObject);
var json = JsonSerializer.Serialize(JsonObject);
request.Content = new StringContent(json, Encoding, "application/json");
}

View File

@@ -1,27 +0,0 @@
using System;
using System.Configuration;
using System.IO;
using System.Xml;
namespace BeWo.ServerUtils.Core
{
public static class MergedConfig
{
public static string GetSetting(string key)
{
// 1. Versuche, aus AppSettings.local.config zu lesen
var localConfigPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web.Secrets.config");
if (File.Exists(localConfigPath))
{
var xml = new XmlDocument();
xml.Load(localConfigPath);
var node = xml.SelectSingleNode($"/appSettings/add[@key='{key}']");
if (node is XmlElement element)
return element.GetAttribute("value");
}
// 2. Fallback: Standard-AppSettings
return ConfigurationManager.AppSettings[key];
}
}
}

View File

@@ -31,12 +31,42 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.2\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Engine" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Pipelines, Version=9.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.IO.Pipelines.9.0.2\lib\net462\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http" />
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web, Version=9.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Text.Encodings.Web.9.0.2\lib\net462\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=9.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Text.Json.9.0.2\lib\net462\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@@ -46,7 +76,6 @@
<ItemGroup>
<Compile Include="ApiFacade\HttpClientFacade.cs" />
<Compile Include="ApiFacade\JsonHttpClientFacade.cs" />
<Compile Include="Core\MergedConfig.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
@@ -58,5 +87,12 @@
<ItemGroup>
<Content Include="README.txt" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="Core\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Bcl.AsyncInterfaces" version="9.0.2" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.IO.Pipelines" version="9.0.2" targetFramework="net472" />
<package id="System.Memory" version="4.5.5" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net472" />
<package id="System.Text.Encodings.Web" version="9.0.2" targetFramework="net472" />
<package id="System.Text.Json" version="9.0.2" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
</packages>

View File

@@ -19,7 +19,9 @@ namespace BeWo.Service
WCFErrorLogFilePath,
JsonErrorLogFilePath,
ApiServiceTestFilePath,
AiServiceLogFilePath
AiServiceLogFilePath,
AiRootPath,
BeWoPlanerServiceRoot
}
[DefaultValue(None)]

View File

@@ -1,11 +1,6 @@
using BeWo.Data.Entities;
using System;
using System.Collections.Generic;
using System;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace BeWo.Service.Core

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.Core
{
public static class PathHelper
{
#region AI
private static string GetAiPath()
=> Path.Combine(getRoot(), "AI");
public static string GetAiSystemPromptPath()
=> Path.Combine(GetAiPath(), "systemPrompts");
#endregion
private static string getRoot()
=> MergedConfig.GetSetting(WebConfigSetting.BeWoPlanerServiceRoot);
}
}

View File

@@ -5,11 +5,10 @@ using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Text;
using System.Threading.Tasks;
using BeWo.Service.ServiceContracts;
using System.ServiceModel.Dispatcher;
using BeWo.Service.Attributes;
using BeWo.Service.ServiceUtils;
using BS.Shared.Extensions;
using BeWo.ServerUtils;
namespace BeWo.Service.Core
{

View File

@@ -16,7 +16,6 @@ using System.Xml;
using BeWo.Data;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.ServiceContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.Extensions;

View File

@@ -5,7 +5,6 @@ using System.Linq;
using BeWo.Data.Entities;
using BeWo.Service.Core;
using BeWo.Service.Interfaces;
using BS.Shared;
using BS.Shared.Extensions;

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using DevExpress.XtraRichEdit;

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using DevExpress.XtraRichEdit;

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using DevExpress.XtraRichEdit;

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using DevExpress.XtraRichEdit;

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using DevExpress.XtraRichEdit;

View File

@@ -1,5 +1,4 @@
using BeWo.Service.Import;
using DevExpress.Pdf;
using DevExpress.Pdf;
using System;
using System.Collections.Generic;
using System.IO;

View File

@@ -5,8 +5,6 @@ using System.Linq;
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;

View File

@@ -5,8 +5,6 @@ using System.Linq;
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;

View File

@@ -8,7 +8,6 @@ using BS.Shared.Extensions;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
namespace BeWo.Service.Invoicing
{

View File

@@ -4,7 +4,6 @@ using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -1,7 +1,5 @@
using AICore.Prompt.Core;
using BeWo.Data.Access;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.ServiceProxy;
using BeWo.Service.ServiceUtils;
using BS.Shared;
@@ -16,6 +14,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AICore.Prompt.SystemInstruction;
using BeWo.Service.Core;
namespace BeWo.Service.Plugins
{
@@ -32,8 +32,9 @@ namespace BeWo.Service.Plugins
// Anfrage zusammensetzen
var context = AiFunctionContextLoader.LoadServiceRecordDocumentationContext(request);
var factory = new AiFunctionSystemInstructionBuilder();
var system_prompt = factory.CreateServiceRecordDocumentationSystemInstructions(AiFunctionType.ServiceRecordDocumentation, context);
var systemInstructionsFolderPath = PathHelper.GetAiSystemPromptPath();
var factory = new AiFunctionSystemInstructionBuilder(systemInstructionsFolderPath);
var system_prompt = factory.CreateServiceRecordDocumentationSystemInstructions(context);
var user_prompt = request.AiPromptbaustein;
var user_prompt_oid = user_prompt.Oid;

View File

@@ -8,7 +8,6 @@ using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -9,14 +9,12 @@ using System.ServiceModel;
using System.Text;
using System.Web.Hosting;
using AICore.Prompt.Core;
using AICore.Prompt.SystemInstruction;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BeWo.Service.ServiceContracts;
using BeWo.Service.ServiceImplementations;
using BeWo.Service.ServiceProxy;
using BeWo.Service.ServiceUtils;
using BS.Shared;
@@ -272,7 +270,8 @@ namespace BeWo.Service.Plugins
{
var current_user = UserRightHelper.GetLoggedInUserWithOid();
var factory = new AiConversationSystemInstructionBuilder();
var systemInstructionsFolderPath = PathHelper.GetAiSystemPromptPath();
var factory = new AiConversationSystemInstructionBuilder(systemInstructionsFolderPath);
var context_loaded = AiContextLoader.LoadContext(uicontext, context_reference);
var system_prompt = factory.CreateSystemInstructions(uicontext, context_loaded, context_Type);

View File

@@ -8,7 +8,6 @@ using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.MessageContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -5,7 +5,6 @@ using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.MessageContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -13,7 +13,6 @@ using BS.Shared.Extensions;
using BS.Shared.Services;
using BeWo.Service.Configuration;
using BeWo.Data.Security;
using BeWo.Service.Security;
using SecurityUtils = BeWo.Service.Security.SecurityUtils;

View File

@@ -7,7 +7,6 @@ using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Configuration;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.MessageContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -12,7 +12,6 @@ using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Services;
using BeWo.Service.Configuration;
using System.Text;
namespace BeWo.Service.Plugins

View File

@@ -12,7 +12,6 @@ using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -4,7 +4,6 @@ using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.Core;

View File

@@ -7,7 +7,6 @@ using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.MessageContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -5,7 +5,6 @@ using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.ServiceImplementations;
using BeWo.Service.ServiceProxy;
using BeWo.Service.ServiceUtils;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -8,8 +8,6 @@ using BS.Shared.DataContracts;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using Castle.Components.DictionaryAdapter;
using NHibernate.Linq;

View File

@@ -8,8 +8,6 @@ using BS.Shared.DataContracts;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using Castle.Components.DictionaryAdapter;
using NHibernate.Linq;

View File

@@ -8,8 +8,6 @@ using BS.Shared.DataContracts;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using Castle.Components.DictionaryAdapter;
using NHibernate.Linq;

View File

@@ -8,8 +8,6 @@ using BS.Shared.DataContracts;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using Castle.Components.DictionaryAdapter;
using NHibernate.Linq;

View File

@@ -8,8 +8,6 @@ using BS.Shared.DataContracts;
using BS.Shared.Services;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using Castle.Components.DictionaryAdapter;
using NHibernate.Linq;

View File

@@ -224,13 +224,13 @@
<ItemGroup>
<Compile Include="Attributes\RequireWcfAuthorizationAttribute.cs" />
<Compile Include="Attributes\RequireApiAuthorizationAttribute.cs" />
<Compile Include="BeWoServiceEnums.cs" />
<Compile Include="Core\ConfigReader.cs" />
<Compile Include="Core\DiamantExporter.cs" />
<Compile Include="Core\ExcelDownload.cs" />
<Compile Include="Core\FileAttachmentUtils.cs" />
<Compile Include="Core\FileLogger.cs" />
<Compile Include="Core\MergedConfig.cs" />
<Compile Include="Core\PathHelper.cs" />
<Compile Include="Core\ServiceLogic.cs" />
<Compile Include="Core\SettingsLogic.cs" />
<Compile Include="Core\Utils.cs" />
@@ -516,6 +516,7 @@
<Compile Include="Security\SecurityContextInitializer.cs" />
<Compile Include="Security\Right2Methods.cs" />
<Compile Include="Security\SecurityUtils.cs" />
<Compile Include="BeWoServiceEnums.cs" />
<Compile Include="ServiceBehavior\AdminHibernateBehavior.cs" />
<Compile Include="ServiceBehavior\AdminHibernateBehaviorExtension.cs" />
<Compile Include="ServiceBehavior\AdminHibernateContextInitializer.cs" />
@@ -609,6 +610,10 @@
<Project>{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}</Project>
<Name>AICore</Name>
</ProjectReference>
<ProjectReference Include="..\Server\Components\ServerUtils\ServerUtils.csproj">
<Project>{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}</Project>
<Name>ServerUtils</Name>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>

View File

@@ -1,5 +1,4 @@
using BeWo.Service.UnitOfWork;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Channels;

View File

@@ -1,5 +1,4 @@
using BeWo.Service.UnitOfWork;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Configuration;

View File

@@ -1,5 +1,4 @@
using BeWo.Service.Multitenancy;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Channels;

View File

@@ -1,5 +1,4 @@
using BeWo.Data;
using BeWo.Service.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -11,7 +10,6 @@ using System.Web;
using System.Xml;
using System.ServiceModel.Dispatcher;
using BeWo.Service.Core;
using BeWo.Service.ServiceUtils;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using DevExpress.CodeParser;

View File

@@ -8,11 +8,9 @@ using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using BeWo.Data;
using BeWo.Service.Attributes;
using BeWo.Service.Core;
using System.Runtime.Remoting.Channels;
using DevExpress.PivotGrid.OLAP;
using BeWo.Service.ServiceUtils;
namespace BeWo.Service.ServiceBehavior
{

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Access;
using BeWo.Service.Core;
using BeWo.Service.ServiceUtils;
using System;
using System.Collections.Generic;
using System.Configuration;

View File

@@ -1,6 +1,4 @@
using BeWo.Service.Core;
using BeWo.Service.ServiceBehavior.JsonError;
using BeWo.Service.ServiceUtils;
using System;
using System.Collections.Generic;
using System.Configuration;

View File

@@ -1,5 +1,4 @@
using BeWo.Data.Entities;
using BeWo.Service.Attributes;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;

View File

@@ -28,7 +28,6 @@ using BS.Shared.AppSender;
using BeWo.Data.Security;
using BS.Shared.DataContracts.Invoicing.XRechnung;
using System.IO;
using BeWo.Service.ServiceUtils;
namespace BeWo.Service.ServiceImplementations
{

View File

@@ -1,8 +1,6 @@
using BeWo.Data.Access;
using BeWo.Service.Core;
using BeWo.Service.ServiceContracts;
using BeWo.Service.ServiceImplementations.Enhanced;
using BeWo.Service.ServiceUtils;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.AdminService;

View File

@@ -11,7 +11,6 @@ using BeWo.Data.Entities;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.ServiceContracts;
using BeWo.Service.Security;
using BS.Shared;
using BS.Shared.DataContracts;

View File

@@ -2,12 +2,8 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BeWo.Service.ServiceContracts.Enhanced;
using BeWo.Service.ServiceProxy;
using BeWo.Service.ServiceUtils;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Feature.AI;

View File

@@ -1,10 +1,8 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BeWo.Service.ServiceContracts.Enhanced;
using BeWo.Service.ServiceProxy;
using BS.Shared;
using BS.Shared.DataContracts.Feature.AI;
using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords;

View File

@@ -2,9 +2,6 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.ServiceContracts;
using BeWo.Service.ServiceContracts.Enhanced;
using BS.Shared;
using DevExpress.Entity.Model.Metadata;

View File

@@ -13,7 +13,6 @@ using BeWo.Service.OwnChat;
using BeWo.Service.PivotTabelle;
using BeWo.Service.Plugins;
using BeWo.Service.SBD;
using BeWo.Service.Security;
using BeWo.Service.ServiceContracts;
using BS.Shared;
using BS.Shared.Core;

View File

@@ -1,6 +1,5 @@
using BeWo.Data.Entities;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BS.Shared.Core;
using BS.Shared.Core.Facade;
using BS.Shared.DataContracts;

View File

@@ -1,7 +1,6 @@
using AICore.Context.Summary;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts;

View File

@@ -4,7 +4,6 @@ using System.ServiceModel.Channels;
using System.ServiceModel.Dispatcher;
using BeWo.Data;
using BeWo.Service.ServiceUtils;
namespace BeWo.Service.UnitOfWork
{

View File

@@ -57,6 +57,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="invoicetest.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.AttributedModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.TypedParts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Hosting" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>