Files
BeWoPlaner/AICore/Context/Summary/BaseContextSummary.cs
2025-07-25 14:27:49 +02:00

116 lines
4.3 KiB
C#

using AICore.Context.Entry;
using AICore.Context.EntryMapper;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AICore.Context.Summary
{
public abstract class BaseContextSummary
{
}
public abstract class DetailContext<T> : BaseContextSummary where T : DetailContextEntry
{
public T DataContext { get; set; }
protected DetailContext(T dataContext)
{
DataContext = dataContext;
}
}
public abstract class NavigationContextSummary<T> : BaseContextSummary where T : NavigationContextEntry
{
public IEnumerable<T> DataContext { get; set; }
protected NavigationContextSummary(IEnumerable<T> dataContext)
{
DataContext = dataContext;
}
}
public class CustomerDetailContextSummary : DetailContext<CustomerDetailContextEntry>
{
public CustomerDetailContextSummary(CustomerDetailContextEntry customer) : base(customer) { }
}
public class EmployeeDetailContextSummary : DetailContext<EmployeeDetailContextEntry>
{
public EmployeeDetailContextSummary(EmployeeDetailContextEntry employee) : base(employee) { }
}
public class PersonDetailContextSummary : DetailContext<PersonDetailContextEntry>
{
public PersonDetailContextSummary(PersonDetailContextEntry person) : base(person) { }
}
public class OrganisationDetailContextSummary : DetailContext<OrganisationDetailContextEntry>
{
public OrganisationDetailContextSummary(OrganisationDetailContextEntry organisation) : base(organisation) { }
}
public class SupportConceptDetailContextSummary : DetailContext<SupportConceptDetailContextEntry>
{
public SupportConceptDetailContextSummary(SupportConceptDetailContextEntry supportConcept) : base(supportConcept) { }
}
public class CustomerNavigationContextSummary : NavigationContextSummary<CustomerNavigationContextEntry>
{
public CustomerNavigationContextSummary(IEnumerable<CustomerNavigationContextEntry> customers) : base(customers) { }
}
public class EmployeeNavigationContextSummary : NavigationContextSummary<EmployeeNavigationContextEntry>
{
public EmployeeNavigationContextSummary(IEnumerable<EmployeeNavigationContextEntry> employee) : base(employee) { }
}
public class PersonNavigationContextSummary : NavigationContextSummary<PersonNavigationContextEntry>
{
public PersonNavigationContextSummary(IEnumerable<PersonNavigationContextEntry> person) : base(person) { }
}
public class OrganisationNavigationContextSummary : NavigationContextSummary<OrganisationNavigationContextEntry>
{
public OrganisationNavigationContextSummary(IEnumerable<OrganisationNavigationContextEntry> organisation) : base(organisation) { }
}
public class SupportConceptNavigationContextSummary : NavigationContextSummary<SupportConceptNavigationContextEntry>
{
public SupportConceptNavigationContextSummary(IEnumerable<SupportConceptNavigationContextEntry> supportConcept) : base(supportConcept) { }
}
public class ServiceRecordNavigationContextSummary : NavigationContextSummary<ServiceRecordContextEntry>
{
public CustomerNavigationContextEntry Customer { get; set; }
public string CostBearer { get; set; }
public string SupportConcept { get; set; }
public ServiceRecordNavigationContextSummary(List<ServiceRecordContextEntry> serviceRecords, CustomerNavigationContextEntry customer, string costBearer, string supportConcept)
: base(serviceRecords)
{
Customer = customer;
CostBearer = costBearer;
SupportConcept = supportConcept;
}
//var customer = LoadEntity(bewoobjects, TableID.Customer, MapperFactory.CompactCustomerDC_Customer);
//var costbearer = LoadProperty(bewoobjects, TableID.CostBearer, MapperFactory.CompactOrganisationDC_Organisation, dc => dc.Name);
//var supportconcept = LoadProperty(bewoobjects, TableID.SupportConcept, MapperFactory.CompactSupportConceptDC_SupportConcept, dc => $"{dc.StartDate?.Date} - {dc.EndDate?.Date}");
//var records = LoadEntities(bewoobjects, TableID.ServiceRecord, MapperFactory.ServiceRecordDC_ServiceRecord);
//var result = new Dictionary<TableID, object>
// {
// { TableID.ServiceRecord, records },
// { TableID.Customer, customer },
// { TableID.CostBearer, costbearer },
// { TableID.SupportConcept, supportconcept }
// };
// return result;
}
}