version 5.1 (5.0)

This commit is contained in:
2026-06-12 15:44:39 +02:00
parent 42ae76db4b
commit e296d90095
20 changed files with 495 additions and 219 deletions

View File

@@ -20,16 +20,16 @@ namespace BeWo.Service.ServiceUtils
{
public static class AiContextLoader
{
public static BaseContextSummary LoadContext(AiActionType actionType, AiViewContextDC view_context)
public static BaseContextSummary LoadContext(AiActionType actionType, AiViewContextDC view_context, int? sample_count = null)
{
switch (actionType)
{
case AiActionType.ServiceRecord:
break;
case AiActionType.ServiceRecordConversation:
return loadServiceRecordConversationContext(view_context.References);
return loadServiceRecordConversationContext(view_context.References, sample_count);
case AiActionType.ServiceRecordDocumentation:
return loadServiceRecordDocumentationContext(view_context.References, view_context.Secondary as string);
return loadServiceRecordDocumentationContext(view_context.References, view_context.Secondary as string, sample_count);
default:
break;
}
@@ -95,20 +95,20 @@ namespace BeWo.Service.ServiceUtils
throw BeWoNotImplementedException.CreateFromEnum(actionType);
}
private static BaseContextSummary loadServiceRecordConversationContext(Dictionary<TableID, long[]> context_reference)
private static BaseContextSummary loadServiceRecordConversationContext(Dictionary<TableID, long[]> context_reference, int? sample_count = null)
{
var customer = loadCompactCustomerDC(context_reference);
var serviceRecords = loadServiceRecordDCs(context_reference);
var serviceRecords = loadServiceRecordDCs(context_reference, sample_count);
var supportConcept = loadSupportConceptDC(context_reference);
var costBearer = supportConcept.CostBearerList.First(x => x.CostBearerOid == context_reference[TableID.CostBearer][0]);
return AiContextSummaryFactory.CreateServiceRecordNavigationContextSummary(serviceRecords, customer, costBearer, supportConcept);
}
private static BaseContextSummary loadServiceRecordDocumentationContext(Dictionary<TableID, long[]> context_reference, string doku_text)
private static BaseContextSummary loadServiceRecordDocumentationContext(Dictionary<TableID, long[]> context_reference, string doku_text, int? sample_count = null)
{
var customer = loadCompactCustomerDC(context_reference);
var serviceRecords = loadServiceRecordDCs(context_reference);
var serviceRecords = loadServiceRecordDCs(context_reference, sample_count);
var supportConcept = loadSupportConceptDC(context_reference);
var costBearer = supportConcept.CostBearerList.First(x => x.CostBearerOid == context_reference[TableID.CostBearer][0]);
@@ -127,8 +127,8 @@ namespace BeWo.Service.ServiceUtils
=> LoadDataContact<CompactCustomerDC_Customer, Customer, CompactCustomerDC>(MapperFactory.CompactCustomerDC_Customer, context_reference);
private static CompactSupportConceptDC loadSupportConceptDC(Dictionary<TableID, long[]> context_reference)
=> LoadDataContact<CompactSupportConceptDC_SupportConcept, SupportConcept, CompactSupportConceptDC>(MapperFactory.CompactSupportConceptDC_SupportConcept, context_reference);
private static IEnumerable<ServiceRecordDC> loadServiceRecordDCs(Dictionary<TableID, long[]> context_reference)
=> LoadDataContacts<ServiceRecordDC_ServiceRecord, ServiceRecord, ServiceRecordDC>(MapperFactory.ServiceRecordDC_ServiceRecord, context_reference);
private static IEnumerable<ServiceRecordDC> loadServiceRecordDCs(Dictionary<TableID, long[]> context_reference, int? sample_count = null)
=> LoadDataContacts<ServiceRecordDC_ServiceRecord, ServiceRecord, ServiceRecordDC>(MapperFactory.ServiceRecordDC_ServiceRecord, context_reference, sample_count);
private static TDC LoadDataContact<TMapper, TEntity, TDC>(TMapper mapper, Dictionary<TableID, long[]> context_reference)
where TMapper : AbstractIDCEntityMapper<TEntity, TDC>
@@ -143,7 +143,7 @@ namespace BeWo.Service.ServiceUtils
return dc;
}
private static IEnumerable<TDC> LoadDataContacts<TMapper, TEntity, TDC>(TMapper mapper, Dictionary<TableID, long[]> context_reference)
private static IEnumerable<TDC> LoadDataContacts<TMapper, TEntity, TDC>(TMapper mapper, Dictionary<TableID, long[]> context_reference, int? sample_count = null)
where TMapper : AbstractIDCEntityMapper<TEntity, TDC>
where TEntity : BeWoEntityBase, new()
where TDC : class, new()
@@ -151,8 +151,13 @@ namespace BeWo.Service.ServiceUtils
var example = new TEntity();
var tid = example.Tid;
var oids = context_reference[tid];
if (sample_count is int count)
oids = context_reference[tid].Take(count).ToArray();
var entities = DAOFactory.GenericDAO.LoadByIDs<TEntity>(oids);
var dcs = mapper.MapToNewDCs(entities);
return dcs;
}
}