AICore abkapseln
This commit is contained in:
@@ -6,7 +6,7 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.Core
|
||||
{
|
||||
public static class ContextEntryMapperFactory
|
||||
internal static class ContextEntryMapperFactory
|
||||
{
|
||||
public static CustomerContextEntryMapper CustomerMapper { get; } = new CustomerContextEntryMapper();
|
||||
public static EmployeeContextEntryMapper EmployeeMapper { get; } = new EmployeeContextEntryMapper();
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace AICore.Context.SummaryMapper
|
||||
{
|
||||
public static class ContextSummaryFactory
|
||||
internal static class ContextSummaryFactory
|
||||
{
|
||||
public static DetailContextSummary<TEntry, TEntity> CreateDetailContext<TEntry, TEntity>(TEntity entity)
|
||||
where TEntry : DetailContextEntry<TEntity>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public abstract class BaseContextEntry
|
||||
internal abstract class BaseContextEntry
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public class CustomerDetailContextEntry : DetailContextEntry<CustomerDC>
|
||||
internal class CustomerDetailContextEntry : DetailContextEntry<CustomerDC>
|
||||
{
|
||||
[JsonPropertyName("Klient-ID")]
|
||||
public long CustomerOid { get; set; }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public abstract class DetailContextEntry<T> : BaseContextEntry
|
||||
internal abstract class DetailContextEntry<T> : BaseContextEntry
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public class EmployeeDetailContextEntry : DetailContextEntry<EmployeeDC>
|
||||
internal class EmployeeDetailContextEntry : DetailContextEntry<EmployeeDC>
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public class OrganisationDetailContextEntry : DetailContextEntry<OrganisationDC>
|
||||
internal class OrganisationDetailContextEntry : DetailContextEntry<OrganisationDC>
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public class PersonDetailContextEntry : DetailContextEntry<PersonDC>
|
||||
internal class PersonDetailContextEntry : DetailContextEntry<PersonDC>
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace AICore.Context.Entry
|
||||
{
|
||||
public class SupportConceptDetailContextEntry : DetailContextEntry<SupportConceptDC>
|
||||
internal class SupportConceptDetailContextEntry : DetailContextEntry<SupportConceptDC>
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public class CustomerNavigationContextEntry : NavigationContextEntry<CompactCustomerDC>
|
||||
internal class CustomerNavigationContextEntry : NavigationContextEntry<CompactCustomerDC>
|
||||
{
|
||||
[JsonPropertyName("Adresse")]
|
||||
public string AddressString { get; set; }
|
||||
|
||||
@@ -3,7 +3,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public class EmployeeNavigationContextEntry : NavigationContextEntry<CompactEmployeeDC>
|
||||
internal class EmployeeNavigationContextEntry : NavigationContextEntry<CompactEmployeeDC>
|
||||
{
|
||||
[JsonPropertyName("Mitarbeiter-ID")]
|
||||
public long EmployeeOid { get; set; }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public abstract class NavigationContextEntry<T> : BaseContextEntry
|
||||
internal abstract class NavigationContextEntry<T> : BaseContextEntry
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public class OrganisationNavigationContextEntry : NavigationContextEntry<CompactOrganisationDC>
|
||||
internal class OrganisationNavigationContextEntry : NavigationContextEntry<CompactOrganisationDC>
|
||||
{
|
||||
[JsonPropertyName("Organisation-ID")]
|
||||
public long OrganisationOid { get; set; }
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public class PersonNavigationContextEntry : NavigationContextEntry<CompactPersonDC>
|
||||
internal class PersonNavigationContextEntry : NavigationContextEntry<CompactPersonDC>
|
||||
{
|
||||
[JsonPropertyName("Adresse")]
|
||||
public string AddressString { get; set; }
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public class ServiceRecordContextEntry : NavigationContextEntry<ServiceRecordDC>
|
||||
internal class ServiceRecordContextEntry : NavigationContextEntry<ServiceRecordDC>
|
||||
{
|
||||
[JsonPropertyName("Zeiteintrag-ID")]
|
||||
public long ServiceRecordOid { get; set; }
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace AICore.Context.Entry.Navigation
|
||||
{
|
||||
public class SupportConceptNavigationContextEntry : NavigationContextEntry<CompactSupportConceptDC>
|
||||
internal class SupportConceptNavigationContextEntry : NavigationContextEntry<CompactSupportConceptDC>
|
||||
{
|
||||
[JsonPropertyName("Hilfeplan-ID")]
|
||||
public long SupportConceptOid { get; set; }
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
|
||||
namespace AICore.Context.EntryMapper
|
||||
{
|
||||
public abstract class BaseContextEntryMapper<TObject, TContext>
|
||||
internal abstract class BaseContextEntryMapper<TObject, TContext>
|
||||
where TObject : class, new() where TContext : BaseContextEntry, new()
|
||||
{
|
||||
public virtual TContext MapToNewContext(TObject pObject)
|
||||
|
||||
@@ -4,7 +4,7 @@ using BS.Shared.Extensions;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Detail
|
||||
{
|
||||
public class CustomerContextEntryMapper : BaseContextEntryMapper<CustomerDC, CustomerDetailContextEntry>
|
||||
internal class CustomerContextEntryMapper : BaseContextEntryMapper<CustomerDC, CustomerDetailContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(CustomerDC pObject, CustomerDetailContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Detail
|
||||
{
|
||||
public class EmployeeContextEntryMapper : BaseContextEntryMapper<EmployeeDC, EmployeeDetailContextEntry>
|
||||
internal class EmployeeContextEntryMapper : BaseContextEntryMapper<EmployeeDC, EmployeeDetailContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(EmployeeDC pObject, EmployeeDetailContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Detail
|
||||
{
|
||||
public class OrganisationContextEntryMapper : BaseContextEntryMapper<OrganisationDC, OrganisationDetailContextEntry>
|
||||
internal class OrganisationContextEntryMapper : BaseContextEntryMapper<OrganisationDC, OrganisationDetailContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(OrganisationDC pObject, OrganisationDetailContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Detail
|
||||
{
|
||||
public class PersonContextEntryMapper : BaseContextEntryMapper<PersonDC, PersonDetailContextEntry>
|
||||
internal class PersonContextEntryMapper : BaseContextEntryMapper<PersonDC, PersonDetailContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(PersonDC pObject, PersonDetailContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Detail
|
||||
{
|
||||
public class ServiceRecordContextEntryMapper : BaseContextEntryMapper<ServiceRecordDC, ServiceRecordContextEntry>
|
||||
internal class ServiceRecordContextEntryMapper : BaseContextEntryMapper<ServiceRecordDC, ServiceRecordContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(ServiceRecordDC pObject, ServiceRecordContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Detail
|
||||
{
|
||||
public class SupportConceptContextEntryMapper : BaseContextEntryMapper<SupportConceptDC, SupportConceptDetailContextEntry>
|
||||
internal class SupportConceptContextEntryMapper : BaseContextEntryMapper<SupportConceptDC, SupportConceptDetailContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(SupportConceptDC pObject, SupportConceptDetailContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ using BS.Shared.Extensions;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Navigation
|
||||
{
|
||||
public class CustomerNavigationContextEntryMapper : BaseContextEntryMapper<CompactCustomerDC, CustomerNavigationContextEntry>
|
||||
internal class CustomerNavigationContextEntryMapper : BaseContextEntryMapper<CompactCustomerDC, CustomerNavigationContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(CompactCustomerDC pObject, CustomerNavigationContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using BS.Shared.Extensions;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Navigation
|
||||
{
|
||||
public class EmployeeNavigationContextEntryMapper : BaseContextEntryMapper<CompactEmployeeDC, EmployeeNavigationContextEntry>
|
||||
internal class EmployeeNavigationContextEntryMapper : BaseContextEntryMapper<CompactEmployeeDC, EmployeeNavigationContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(CompactEmployeeDC pObject, EmployeeNavigationContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ using BS.Shared.Extensions;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Navigation
|
||||
{
|
||||
public class OrganisationNavigationContextEntryMapper : BaseContextEntryMapper<CompactOrganisationDC, OrganisationNavigationContextEntry>
|
||||
internal class OrganisationNavigationContextEntryMapper : BaseContextEntryMapper<CompactOrganisationDC, OrganisationNavigationContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(CompactOrganisationDC pObject, OrganisationNavigationContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Navigation
|
||||
{
|
||||
public class PersonNavigationContextEntryMapper : BaseContextEntryMapper<CompactPersonDC, PersonNavigationContextEntry>
|
||||
internal class PersonNavigationContextEntryMapper : BaseContextEntryMapper<CompactPersonDC, PersonNavigationContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(CompactPersonDC pObject, PersonNavigationContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using BS.Shared.Extensions;
|
||||
|
||||
namespace AICore.Context.EntryMapper.Navigation
|
||||
{
|
||||
public class SupportConceptNavigationContextEntryMapper : BaseContextEntryMapper<CompactSupportConceptDC, SupportConceptNavigationContextEntry>
|
||||
internal class SupportConceptNavigationContextEntryMapper : BaseContextEntryMapper<CompactSupportConceptDC, SupportConceptNavigationContextEntry>
|
||||
{
|
||||
public override void MergeWithObject(CompactSupportConceptDC pObject, SupportConceptNavigationContextEntry pContext)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public abstract class BaseContextSummary
|
||||
internal abstract class BaseContextSummary
|
||||
{
|
||||
public object Context { get; set; }
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class CustomerDetailContextSummary : DetailContextSummary<CustomerDetailContextEntry, CustomerDC>
|
||||
internal class CustomerDetailContextSummary : DetailContextSummary<CustomerDetailContextEntry, CustomerDC>
|
||||
{
|
||||
public CustomerDetailContextSummary(CustomerDetailContextEntry customer) : base(customer) { }
|
||||
internal CustomerDetailContextSummary(CustomerDetailContextEntry customer) : base(customer) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class CustomerNavigationContextSummary : NavigationContextSummary<CustomerNavigationContextEntry, CompactCustomerDC>
|
||||
internal class CustomerNavigationContextSummary : NavigationContextSummary<CustomerNavigationContextEntry, CompactCustomerDC>
|
||||
{
|
||||
public CustomerNavigationContextSummary(IEnumerable<CustomerNavigationContextEntry> customers) : base(customers) { }
|
||||
internal CustomerNavigationContextSummary(IEnumerable<CustomerNavigationContextEntry> customers) : base(customers) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public abstract class DetailContextSummary<TEntry, TEntity> : BaseContextSummary where TEntry : DetailContextEntry<TEntity>
|
||||
internal abstract class DetailContextSummary<TEntry, TEntity> : BaseContextSummary where TEntry : DetailContextEntry<TEntity>
|
||||
{
|
||||
public TEntry DataContext { get; set; }
|
||||
internal TEntry DataContext { get; set; }
|
||||
|
||||
protected DetailContextSummary(TEntry dataContext)
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class EmployeeDetailContextSummary : DetailContextSummary<EmployeeDetailContextEntry, EmployeeDC>
|
||||
internal class EmployeeDetailContextSummary : DetailContextSummary<EmployeeDetailContextEntry, EmployeeDC>
|
||||
{
|
||||
public EmployeeDetailContextSummary(EmployeeDetailContextEntry employee) : base(employee) { }
|
||||
internal EmployeeDetailContextSummary(EmployeeDetailContextEntry employee) : base(employee) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class EmployeeNavigationContextSummary : NavigationContextSummary<EmployeeNavigationContextEntry, CompactEmployeeDC>
|
||||
internal class EmployeeNavigationContextSummary : NavigationContextSummary<EmployeeNavigationContextEntry, CompactEmployeeDC>
|
||||
{
|
||||
public EmployeeNavigationContextSummary(IEnumerable<EmployeeNavigationContextEntry> employee) : base(employee) { }
|
||||
internal EmployeeNavigationContextSummary(IEnumerable<EmployeeNavigationContextEntry> employee) : base(employee) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@ using AICore.Context.Entry.Navigation;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public abstract class NavigationContextSummary<TEntry, TEntity> : BaseContextSummary where TEntry : NavigationContextEntry<TEntity>
|
||||
internal abstract class NavigationContextSummary<TEntry, TEntity> : BaseContextSummary where TEntry : NavigationContextEntry<TEntity>
|
||||
{
|
||||
public IEnumerable<TEntry> DataContext { get; set; }
|
||||
internal IEnumerable<TEntry> DataContext { get; set; }
|
||||
|
||||
protected NavigationContextSummary(IEnumerable<TEntry> dataContext)
|
||||
{
|
||||
|
||||
@@ -3,8 +3,8 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class OrganisationDetailContextSummary : DetailContextSummary<OrganisationDetailContextEntry, OrganisationDC>
|
||||
internal class OrganisationDetailContextSummary : DetailContextSummary<OrganisationDetailContextEntry, OrganisationDC>
|
||||
{
|
||||
public OrganisationDetailContextSummary(OrganisationDetailContextEntry organisation) : base(organisation) { }
|
||||
internal OrganisationDetailContextSummary(OrganisationDetailContextEntry organisation) : base(organisation) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class OrganisationNavigationContextSummary : NavigationContextSummary<OrganisationNavigationContextEntry, CompactOrganisationDC>
|
||||
internal class OrganisationNavigationContextSummary : NavigationContextSummary<OrganisationNavigationContextEntry, CompactOrganisationDC>
|
||||
{
|
||||
public OrganisationNavigationContextSummary(IEnumerable<OrganisationNavigationContextEntry> organisation) : base(organisation) { }
|
||||
internal OrganisationNavigationContextSummary(IEnumerable<OrganisationNavigationContextEntry> organisation) : base(organisation) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class PersonDetailContextSummary : DetailContextSummary<PersonDetailContextEntry, PersonDC>
|
||||
internal class PersonDetailContextSummary : DetailContextSummary<PersonDetailContextEntry, PersonDC>
|
||||
{
|
||||
public PersonDetailContextSummary(PersonDetailContextEntry person) : base(person) { }
|
||||
internal PersonDetailContextSummary(PersonDetailContextEntry person) : base(person) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class PersonNavigationContextSummary : NavigationContextSummary<PersonNavigationContextEntry, CompactPersonDC>
|
||||
internal class PersonNavigationContextSummary : NavigationContextSummary<PersonNavigationContextEntry, CompactPersonDC>
|
||||
{
|
||||
public PersonNavigationContextSummary(IEnumerable<PersonNavigationContextEntry> person) : base(person) { }
|
||||
internal PersonNavigationContextSummary(IEnumerable<PersonNavigationContextEntry> person) : base(person) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@ using System.Collections.Generic;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class ServiceRecordNavigationContextSummary : NavigationContextSummary<ServiceRecordContextEntry, ServiceRecordDC>
|
||||
internal class ServiceRecordNavigationContextSummary : NavigationContextSummary<ServiceRecordContextEntry, ServiceRecordDC>
|
||||
{
|
||||
public CustomerNavigationContextEntry Customer { get; set; }
|
||||
public string CostBearer { get; set; }
|
||||
public string SupportConcept { get; set; }
|
||||
internal CustomerNavigationContextEntry Customer { get; set; }
|
||||
internal string CostBearer { get; set; }
|
||||
internal string SupportConcept { get; set; }
|
||||
|
||||
public ServiceRecordNavigationContextSummary(IEnumerable<ServiceRecordContextEntry> serviceRecords, CustomerNavigationContextEntry customer, string costBearer, string supportConcept)
|
||||
internal ServiceRecordNavigationContextSummary(IEnumerable<ServiceRecordContextEntry> serviceRecords, CustomerNavigationContextEntry customer, string costBearer, string supportConcept)
|
||||
: base(serviceRecords)
|
||||
{
|
||||
Customer = customer;
|
||||
|
||||
@@ -3,8 +3,8 @@ using BS.Shared.DataContracts;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class SupportConceptDetailContextSummary : DetailContextSummary<SupportConceptDetailContextEntry, SupportConceptDC>
|
||||
internal class SupportConceptDetailContextSummary : DetailContextSummary<SupportConceptDetailContextEntry, SupportConceptDC>
|
||||
{
|
||||
public SupportConceptDetailContextSummary(SupportConceptDetailContextEntry supportConcept) : base(supportConcept) { }
|
||||
internal SupportConceptDetailContextSummary(SupportConceptDetailContextEntry supportConcept) : base(supportConcept) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ using BS.Shared.DataContracts.Compact;
|
||||
|
||||
namespace AICore.Context.Summary
|
||||
{
|
||||
public class SupportConceptNavigationContextSummary : NavigationContextSummary<SupportConceptNavigationContextEntry, CompactSupportConceptDC>
|
||||
internal class SupportConceptNavigationContextSummary : NavigationContextSummary<SupportConceptNavigationContextEntry, CompactSupportConceptDC>
|
||||
{
|
||||
public SupportConceptNavigationContextSummary(IEnumerable<SupportConceptNavigationContextEntry> supportConcept) : base(supportConcept) { }
|
||||
internal SupportConceptNavigationContextSummary(IEnumerable<SupportConceptNavigationContextEntry> supportConcept) : base(supportConcept) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AICore.Context.SummaryParser
|
||||
{
|
||||
public abstract class BaseContextSummaryParser
|
||||
internal abstract class BaseContextSummaryParser
|
||||
{
|
||||
public abstract string Parse(AiContextType uicontext, BaseContextSummary context);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AICore.Context.SummaryParser
|
||||
{
|
||||
public class CsvContextSummaryParser : BaseContextSummaryParser
|
||||
internal class CsvContextSummaryParser : BaseContextSummaryParser
|
||||
{
|
||||
private string _Delimiter;
|
||||
private bool _StrictEscapeCsvField;
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AICore.Context.SummaryParser
|
||||
{
|
||||
public class JsonContextSummaryParser : BaseContextSummaryParser
|
||||
internal class JsonContextSummaryParser : BaseContextSummaryParser
|
||||
{
|
||||
public override string Parse(AiContextType uicontext, BaseContextSummary context)
|
||||
{
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Exceptions;
|
||||
using BS.Shared.Interface.Feature.AICore;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AICore.Prompt.Core
|
||||
{
|
||||
public static class AiUtils
|
||||
{
|
||||
public static void CheckTokenSize(IList<AiConversationMessageDC> messages, string modelName, int max_context_size)
|
||||
public static void CheckTokenSize(IEnumerable<IAiConversationMessage> messages, string modelName, int max_context_size)
|
||||
{
|
||||
var buffer = 500;
|
||||
|
||||
@@ -28,7 +29,7 @@ namespace AICore.Prompt.Core
|
||||
}
|
||||
}
|
||||
|
||||
private static int CalculateTokensByModel(IList<AiConversationMessageDC> messages, string modelName)
|
||||
private static int CalculateTokensByModel(IEnumerable<IAiConversationMessage> messages, string modelName)
|
||||
{
|
||||
var count = 0;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace AICore.Prompt.Factories
|
||||
{
|
||||
sb.AppendLine("Du erhälst folgende Daten:");
|
||||
var parser = GetParser(aiDataContextType);
|
||||
var parsed = LoadContext(uicontext, bewoobjects, parser);
|
||||
var parsed = CreateContext(uicontext, bewoobjects, parser);
|
||||
sb.AppendLine(parsed);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace AICore.Prompt.Factories
|
||||
throw BeWoNotImplementedException.CreateFromEnum(aiDataContextType);
|
||||
}
|
||||
|
||||
private string LoadContext(AiContextType uicontext, IEnumerable<IDataContract> bewoobjects, BaseContextSummaryParser parser)
|
||||
private string CreateContext(AiContextType uicontext, IEnumerable<IDataContract> bewoobjects, BaseContextSummaryParser parser)
|
||||
{
|
||||
var context = GetContext(uicontext, bewoobjects);
|
||||
|
||||
@@ -81,28 +81,28 @@ namespace AICore.Prompt.Factories
|
||||
|
||||
return parsed;
|
||||
}
|
||||
|
||||
protected BaseContextSummary GetContext(AiContextType uicontext, IEnumerable<IDataContract> bewoobjects)
|
||||
|
||||
private BaseContextSummary GetContext(AiContextType uicontext, IEnumerable<IDataContract> bewoobjects)
|
||||
{
|
||||
switch (uicontext)
|
||||
{
|
||||
case AiContextType.SupportConcept:
|
||||
case AiContextType.SupportConceptNavigation:
|
||||
return GetNavigationContext<SupportConceptNavigationContextEntry, CompactSupportConceptDC>(bewoobjects);
|
||||
case AiContextType.Customer:
|
||||
case AiContextType.CustomerNavigation:
|
||||
return GetNavigationContext<CustomerNavigationContextEntry, CompactCustomerDC>(bewoobjects);
|
||||
case AiContextType.Person:
|
||||
case AiContextType.PersonNavigation:
|
||||
return GetNavigationContext<PersonNavigationContextEntry, CompactPersonDC>(bewoobjects);
|
||||
case AiContextType.Employee:
|
||||
case AiContextType.EmployeeNavigation:
|
||||
return GetNavigationContext<EmployeeNavigationContextEntry, CompactEmployeeDC>(bewoobjects);
|
||||
case AiContextType.Organisation:
|
||||
case AiContextType.OrganisationNavigation:
|
||||
return GetNavigationContext<OrganisationNavigationContextEntry, CompactOrganisationDC>(bewoobjects);
|
||||
case AiContextType.ServiceRecord:
|
||||
return GetServiceRecordsContext(bewoobjects);
|
||||
case AiContextType.CustomerSingle:
|
||||
case AiContextType.CustomerDetail:
|
||||
return GetDetailContext<CustomerDetailContextEntry, CustomerDC>(bewoobjects);
|
||||
case AiContextType.PersonSingle:
|
||||
case AiContextType.PersonDetail:
|
||||
return GetDetailContext<PersonDetailContextEntry, PersonDC>(bewoobjects);
|
||||
case AiContextType.EmployeeSingle:
|
||||
case AiContextType.EmployeeDetail:
|
||||
return GetDetailContext<EmployeeDetailContextEntry, EmployeeDC>(bewoobjects);
|
||||
default:
|
||||
throw BeWoNotImplementedException.CreateFromEnum(uicontext);
|
||||
|
||||
@@ -26,11 +26,11 @@ namespace BeWo.Services
|
||||
private string getStyleString(AiContextType uIContext) {
|
||||
switch (uIContext)
|
||||
{
|
||||
case AiContextType.SupportConcept: return "ModuleAiControlSupportConceptStyle";
|
||||
case AiContextType.Customer: return "ModuleAiControlCustomerStyle";
|
||||
case AiContextType.Person: return "ModuleAiControlPersonStyle";
|
||||
case AiContextType.Employee: return "ModuleAiControlEmployeeStyle";
|
||||
case AiContextType.Organisation: return "ModuleAiControlOrganisationStyle";
|
||||
case AiContextType.SupportConceptNavigation: return "ModuleAiControlSupportConceptStyle";
|
||||
case AiContextType.CustomerNavigation: return "ModuleAiControlCustomerStyle";
|
||||
case AiContextType.PersonNavigation: return "ModuleAiControlPersonStyle";
|
||||
case AiContextType.EmployeeNavigation: return "ModuleAiControlEmployeeStyle";
|
||||
case AiContextType.OrganisationNavigation: return "ModuleAiControlOrganisationStyle";
|
||||
case AiContextType.Team:
|
||||
break;
|
||||
case AiContextType.Dokumente:
|
||||
@@ -56,9 +56,9 @@ namespace BeWo.Services
|
||||
case AiContextType.Administration:
|
||||
break;
|
||||
case AiContextType.ServiceRecord: return "ModuleAiControlZeiterfassungStyle";
|
||||
case AiContextType.CustomerSingle: return "ModuleAiControlCustomerStyle";
|
||||
case AiContextType.PersonSingle: return "ModuleAiControlPersonStyle";
|
||||
case AiContextType.EmployeeSingle: return "ModuleAiControlEmployeeStyle";
|
||||
case AiContextType.CustomerDetail: return "ModuleAiControlCustomerStyle";
|
||||
case AiContextType.PersonDetail: return "ModuleAiControlPersonStyle";
|
||||
case AiContextType.EmployeeDetail: return "ModuleAiControlEmployeeStyle";
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -18,12 +18,12 @@ namespace BeWo.Services
|
||||
public Dictionary<AiContextType, string> UIContext2Header { get; set; } = new Dictionary<AiContextType, string>()
|
||||
{
|
||||
{AiContextType.ServiceRecord, "KI Chat: Zeiterfassung" },
|
||||
{AiContextType.Customer, "KI Chat: Klienten Übersicht" },
|
||||
{AiContextType.Person, "KI Chat: Personen Übersicht" },
|
||||
{AiContextType.Employee, "KI Chat: Mitarbeiter Übersicht" },
|
||||
{AiContextType.Organisation, "KI Chat: Organisation Übersicht" },
|
||||
{AiContextType.SupportConcept, "KI Chat: Hilfeplan Übersicht" },
|
||||
{AiContextType.CustomerSingle, "KI Chat: Klient" },
|
||||
{AiContextType.CustomerNavigation, "KI Chat: Klienten Übersicht" },
|
||||
{AiContextType.PersonNavigation, "KI Chat: Personen Übersicht" },
|
||||
{AiContextType.EmployeeNavigation, "KI Chat: Mitarbeiter Übersicht" },
|
||||
{AiContextType.OrganisationNavigation, "KI Chat: Organisation Übersicht" },
|
||||
{AiContextType.SupportConceptNavigation, "KI Chat: Hilfeplan Übersicht" },
|
||||
{AiContextType.CustomerDetail, "KI Chat: Klient" },
|
||||
};
|
||||
|
||||
public AnimatedBeWoWindow GetAiConversationWindow(AiConversationChatViewModel viewModel, Control control, double height = 600, double width = 1200)
|
||||
|
||||
@@ -320,7 +320,7 @@ namespace BeWo.View.Detail
|
||||
var customer_oid = ViewModel.DataContract.CustomerOid;
|
||||
var context = GetVisibleInformationReferences();
|
||||
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.CustomerSingle, context, customer_oid);
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.CustomerDetail, context, customer_oid);
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace BeWo.View.Navigation
|
||||
{
|
||||
var context = GetVisibleInformationReferences();
|
||||
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.Customer, context);
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.CustomerNavigation, context);
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace BeWo.View.Navigation
|
||||
{
|
||||
var context = GetVisibleInformationReferences();
|
||||
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.Employee, context);
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.EmployeeNavigation, context);
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace BeWo.View.Navigation
|
||||
{
|
||||
var context = GetVisibleInformationReferences();
|
||||
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.Organisation, context);
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.OrganisationNavigation, context);
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ namespace BeWo.View.Navigation
|
||||
{
|
||||
var context = GetVisibleInformationReferences();
|
||||
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.Person, context);
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.PersonNavigation, context);
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -230,7 +230,7 @@ namespace BeWo.View.Navigation
|
||||
{
|
||||
var context = GetVisibleInformationReferences();
|
||||
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.SupportConcept, context);
|
||||
var vm = VMFactory.CreateAiConversationChatViewModel(AiContextType.SupportConceptNavigation, context);
|
||||
|
||||
return vm;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,11 @@ using System.Collections.Generic;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.Interface.Feature.AICore;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
public class AiConversationMessage : BeWoEntityBase
|
||||
public class AiConversationMessage : BeWoEntityBase, IAiConversationMessage
|
||||
{
|
||||
public AiConversationMessage()
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@ 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 BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
@@ -265,16 +266,19 @@ namespace BeWo.Service.Plugins
|
||||
return models;
|
||||
}
|
||||
|
||||
protected virtual AiConversation createAiConversation(AiContextType uicontext, Dictionary<TableID, IDataContract[]> context, long modell_oid, AiDataContextType context_Type)
|
||||
protected virtual AiConversation createAiConversation(AiContextType uicontext, Dictionary<TableID, long[]> context_reference, long modell_oid, AiDataContextType context_Type)
|
||||
{
|
||||
var current_user = UserRightHelper.GetLoggedInUserWithOid();
|
||||
var factory = new AiPromptFactory();
|
||||
|
||||
var system_prompt = factory.CreateSystemInstructions(uicontext, context, context_Type);
|
||||
loadContext(uicontext, context_reference, out var context_loaded);
|
||||
var system_prompt = factory.CreateSystemInstructions(uicontext, context_loaded, context_Type);
|
||||
|
||||
var conv = new AiConversation();
|
||||
conv.Created = DateTime.Now;
|
||||
conv.ContextBeWoObjects = MapperFactory.AiConversation.Parse(context);
|
||||
|
||||
// RETODO Muss noch bzgl Sicherheit geprüft werden.
|
||||
conv.ContextBeWoObjects = MapperFactory.AiConversation.Parse(context_reference);
|
||||
conv.Displayname = "Neue Unterhaltung";
|
||||
conv.Messages = new List<AiConversationMessage>();
|
||||
conv.Modell = DAOFactory.GenericDAO.LoadByID<AiModel>(modell_oid);
|
||||
@@ -373,5 +377,51 @@ namespace BeWo.Service.Plugins
|
||||
|
||||
return new AiConversationMessageDC[] { user_msg_dc, assi_msg_dc };
|
||||
}
|
||||
|
||||
protected virtual IEnumerable<IDataContract> loadContext(AiContextType uicontext, Dictionary<TableID, long[]> context_reference)
|
||||
{
|
||||
switch (uicontext)
|
||||
{
|
||||
case AiContextType.SupportConceptNavigation:
|
||||
return new CustomerServiceImp().GetAllAuthorizedCompactSupportConcepts()
|
||||
.Where(x => oidsContainsOid(context_reference[TableID.SupportConcept], x.SupportConceptOid));
|
||||
case AiContextType.CustomerNavigation:
|
||||
return new CustomerServiceImp().GetAllAuthorizedCompactCustomers()
|
||||
.Where(x => oidsContainsOid(context_reference[TableID.Customer], x.CustomerOid));
|
||||
case AiContextType.PersonNavigation:
|
||||
return new CustomerServiceImp().GetAllAuthorizedCompactPersons()
|
||||
.Where(x => oidsContainsOid(context_reference[TableID.Person], x.PersonOid));
|
||||
case AiContextType.EmployeeNavigation:
|
||||
return new EmployeeServiceImp().GetAllCompactEmployees()
|
||||
.Where(x => oidsContainsOid(context_reference[TableID.Employee], x.EmployeeOid));
|
||||
case AiContextType.OrganisationNavigation:
|
||||
return new CustomerServiceImp().GetAllOrganisationsCompact()
|
||||
.Where(x => oidsContainsOid(context_reference[TableID.Organisation], x.OrganisationOid));
|
||||
case AiContextType.ServiceRecord:
|
||||
break;
|
||||
case AiContextType.CustomerDetail:
|
||||
break;
|
||||
case AiContextType.PersonDetail:
|
||||
break;
|
||||
case AiContextType.EmployeeDetail:
|
||||
break;
|
||||
case AiContextType.OrganisationDetail:
|
||||
break;
|
||||
case AiContextType.SupportConceptDetail:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private bool oidsContainsOid(long[] oids, long oid)
|
||||
{
|
||||
if(oids == null || oids.Length == 0)
|
||||
return false;
|
||||
|
||||
return oids.Contains(oid);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1385,31 +1385,31 @@ namespace BS.Shared
|
||||
|
||||
public enum AiContextType
|
||||
{
|
||||
SupportConcept = 0,
|
||||
Customer = 1,
|
||||
Person = 2,
|
||||
Employee = 3,
|
||||
Organisation = 4,
|
||||
Team = 5,
|
||||
Dokumente = 6,
|
||||
User = 7,
|
||||
UserGroup = 8,
|
||||
Report = 9,
|
||||
Scheduler = 10,
|
||||
Wohnheim = 11,
|
||||
Vertretungen = 12,
|
||||
CustomerTeam = 13,
|
||||
Scheduling = 14,
|
||||
Finance = 15,
|
||||
Administration = 16,
|
||||
SupportConceptNavigation = 0,
|
||||
CustomerNavigation = 1,
|
||||
PersonNavigation = 2,
|
||||
EmployeeNavigation = 3,
|
||||
OrganisationNavigation = 4,
|
||||
//Team = 5,
|
||||
//Dokumente = 6,
|
||||
//User = 7,
|
||||
//UserGroup = 8,
|
||||
//Report = 9,
|
||||
//Scheduler = 10,
|
||||
//Wohnheim = 11,
|
||||
//Vertretungen = 12,
|
||||
//CustomerTeam = 13,
|
||||
//Scheduling = 14,
|
||||
//Finance = 15,
|
||||
//Administration = 16,
|
||||
//AiConversation = 17,
|
||||
//AiConversationPopup = 18,
|
||||
ServiceRecord = 19,
|
||||
CustomerSingle = 20,
|
||||
PersonSingle = 21,
|
||||
EmployeeSingle = 22,
|
||||
OrganisationSingle = 23,
|
||||
SupportConceptSingle = 24,
|
||||
CustomerDetail = 20,
|
||||
PersonDetail = 21,
|
||||
EmployeeDetail = 22,
|
||||
OrganisationDetail = 23,
|
||||
SupportConceptDetail = 24,
|
||||
}
|
||||
|
||||
public enum AiModelSource
|
||||
|
||||
@@ -1145,15 +1145,15 @@ namespace BS.Shared.Core
|
||||
{
|
||||
var dict = new Dictionary<Enum, string>();
|
||||
|
||||
dict.Add(AiContextType.SupportConcept, "Hilfeplan Navigation");
|
||||
dict.Add(AiContextType.Customer, "Klienten Navigation");
|
||||
dict.Add(AiContextType.Person, "Personen Navigation");
|
||||
dict.Add(AiContextType.Employee, "Mitarbeiter Navigation");
|
||||
dict.Add(AiContextType.Organisation, "Organisationen Navigation");
|
||||
dict.Add(AiContextType.SupportConceptNavigation, "Hilfeplan Navigation");
|
||||
dict.Add(AiContextType.CustomerNavigation, "Klienten Navigation");
|
||||
dict.Add(AiContextType.PersonNavigation, "Personen Navigation");
|
||||
dict.Add(AiContextType.EmployeeNavigation, "Mitarbeiter Navigation");
|
||||
dict.Add(AiContextType.OrganisationNavigation, "Organisationen Navigation");
|
||||
dict.Add(AiContextType.ServiceRecord, "Zeiterfassung");
|
||||
dict.Add(AiContextType.CustomerSingle, "Klienten Ansicht");
|
||||
dict.Add(AiContextType.EmployeeSingle, "Personen Ansicht");
|
||||
dict.Add(AiContextType.PersonSingle, "Mitarbeiter Ansicht");
|
||||
dict.Add(AiContextType.CustomerDetail, "Klienten Ansicht");
|
||||
dict.Add(AiContextType.EmployeeDetail, "Personen Ansicht");
|
||||
dict.Add(AiContextType.PersonDetail, "Mitarbeiter Ansicht");
|
||||
|
||||
return dict;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BS.Shared.DataContracts.Feature.AI;
|
||||
using BS.Shared.Interface.Feature.AICore;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -10,7 +11,7 @@ using System.Threading.Tasks;
|
||||
namespace BS.Shared.DataContracts
|
||||
{
|
||||
[DataContract]
|
||||
public class AiConversationMessageDC : BeWoDataContract
|
||||
public class AiConversationMessageDC : BeWoDataContract, IAiConversationMessage
|
||||
{
|
||||
[DataMember] public string Message { get; set; }
|
||||
[DataMember] public AiConversationMessageRole Role { get; set; }
|
||||
|
||||
18
Shared/Interface/Feature/AICore/IAiConversationMessage.cs
Normal file
18
Shared/Interface/Feature/AICore/IAiConversationMessage.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BS.Shared.Interface.Feature.AICore
|
||||
{
|
||||
public interface IAiConversationMessage
|
||||
{
|
||||
string Message { get; }
|
||||
AiConversationMessageRole Role { get; }
|
||||
DateTime Created { get; }
|
||||
string ModelName { get; }
|
||||
int? Duration { get; }
|
||||
}
|
||||
}
|
||||
@@ -400,6 +400,7 @@
|
||||
<Compile Include="Extensions\PersonNameableExtensions.cs" />
|
||||
<Compile Include="Extensions\TimeIntervalExtensions.cs" />
|
||||
<Compile Include="Interface\Abstract\IAddressable.cs" />
|
||||
<Compile Include="Interface\Feature\AICore\IAiConversationMessage.cs" />
|
||||
<Compile Include="Interface\IApiErrorExtractor.cs" />
|
||||
<Compile Include="Interface\IContact.cs" />
|
||||
<Compile Include="Interface\IGkvAbrechnung.cs" />
|
||||
|
||||
Reference in New Issue
Block a user