Codebasis als Dateien ins Arbeitsrepo statt als Gitlink

QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
This commit is contained in:
Christoph Schwörer
2026-08-26 07:43:51 +02:00
parent 18edae75b6
commit f045b99a25
24664 changed files with 5846716 additions and 1 deletions
@@ -0,0 +1,66 @@
{
Description: null,
I3D: 10,
IsDeactivated: null,
IsPrivate: null,
Name: 'Hardware',
Number: 1,
ParentI3D: 4,
ServiceBoardWebColor: '#FF0000',
ServiceBoardWebIcon: 'thumbs-up',
SkillAssignments: [],
SubCategories: [
{
Description: null,
I3D: 12,
IsDeactivated: null,
IsPrivate: null,
Name: 'Grafikkarte',
Number: 1,
ParentI3D: 10,
ServiceBoardWebColor: null,
ServiceBoardWebIcon: null,
SkillAssignments: [],
SubCategories: []
},
{
Description: null,
I3D: 13,
IsDeactivated: null,
IsPrivate: null,
Name: 'Soundkarte',
Number: 2,
ParentI3D: 10,
ServiceBoardWebColor: null,
ServiceBoardWebIcon: null,
SkillAssignments: [],
SubCategories: []
},
{
Description: null,
I3D: 14,
IsDeactivated: null,
IsPrivate: null,
Name: 'DVD/CD-ROM/RW',
Number: 3,
ParentI3D: 10,
ServiceBoardWebColor: null,
ServiceBoardWebIcon: null,
SkillAssignments: [],
SubCategories: []
},
{
Description: null,
I3D: 15,
IsDeactivated: null,
IsPrivate: null,
Name: 'Motherboard',
Number: 4,
ParentI3D: 10,
ServiceBoardWebColor: null,
ServiceBoardWebIcon: null,
SkillAssignments: [],
SubCategories: []
}
]
}
@@ -0,0 +1,19 @@
{
Color: null,
DueDateDelayInHours: 6.0,
EscalationSa: false,
EscalationSo: false,
Hour2: 12.0,
Hour3: 24.0,
I3D: 2,
IsDeactivated: null,
IsSLA: false,
Name: 'hoch (6 Stunden)',
Number: null,
OfficeHourFrom: DateTime,
OfficeHourTo: DateTime,
RegularWorkingDay: 6.0,
ServiceBoardWebColor: '#FF0000',
ServiceBoardWebIcon: 'thumbs-up',
State: 1
}
@@ -0,0 +1,12 @@
{
Description: 'Request erledigt',
I3D: 2,
Icon: 'Qk02AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAA////////////////weTygsjkT7HaK6HSK6HST7HagsjkweTy////////////////////////4/P6hMrmI7DdFr/oEtD0ENv8ENz8EtD0Fr/oI7Ddg8rm4/P6////////////4/T6cMPjHLvlG9f4GeL/GuL/GcfrGcfrGeL/GeL/Gtj4HLvlcMPj4/T6////////hc7oIr7mJeD9JuT/LNPrHUSJHUSJHUSJHUSJLNPrJeX/JuD9Ir7nhc3o////wuf1LbfiMdz5NOf/LNPrHUSJKbvaNOf/NOf/KbvaHUSJLNPrM+b/MNz5Lbjjw+j1hdHsMsvtQ+n/Q+n/HUSJKbvaQ+r/Q+r/Q+n/Q+n/KbvaHUSJQ+r/Q+r/MsruhdHsU8HmR933U+z/U+z/HUSJU+z/U+z/U+z/U+z/U+z/U+z/HUSJU+z/U+z/R933U8HmMbjkX+v9ZO//Y+//Y+//Y+//ZO//ZO//ZO//Y+//ZO//Y+//Y+//ZO//X+v9MLjkMrznbu79dPL/dPL/dPL/dPL/dPL/dPL/dPL/dPL/dPL/dPH/dPL/dPL/bu79MrzoVsrubeb6hPT/hPX/hPX/hPX/hPX/hPX/hPX/g/X/hPT/hPT/hPX/hPX/beb5VsruiNz1Xdv2k/f/k/f/lPf/HUSJk/f/lPf/k/j/lPf/HUSJk/f/lPf/k/f/Xdv1iNz1xO/7StDzjfD8ofr/ofr/HUSJofn/ofr/ofr/ofr/HUSJofr/ofr/jvH8StHzxO/7////ieD4X9z3pvn+rfz/rvz/rvz/rvz/rvz/rvz/rvv/rvz/pvn+Xtz3iuD4////////5fn+d934Y934ofT9uP7/uP7/uP3/uP3/uP7/uP7/ofX9Y974d9z45fn+////////////5fn+i+P6U9j4duX6m/L9tfv+tfv+m/L9deX7Utj4i+P75fn+////////////////////////xfL9iuT7Wtj5OND4OND4Wtj5iuT7xfL9////////////////',
IsDeactivated: null,
IsInternalCompanyBillingActive: null,
Name: 'erledigt',
Number: null,
ServiceBoardWebColor: '#FF0000',
ServiceBoardWebIcon: 'thumbs-up',
State: null
}
@@ -0,0 +1,16 @@
{
Color: null,
Description: 'Der Fall wurde an den entsprechenden Mitarbeiter weitergeleitet',
I3D: 3,
IsDeactivated: false,
IsDefault: false,
JourneyFromRequired: null,
JourneyToRequired: null,
Name: 'weiterleiten',
Number: 3,
ServiceBoardWebColor: '#FF0000',
ServiceBoardWebIcon: 'thumbs-up',
State: null,
WithAddressSpecialArticle: null,
WithCustomerSpecialArticle: null
}
@@ -0,0 +1,10 @@
{
Color: null,
Description: null,
I3D: 1,
IsDeactivated: null,
Name: 'Software Fehler',
Number: 1,
ServiceBoardWebColor: '#FF0000',
ServiceBoardWebIcon: 'thumbs-up'
}
@@ -0,0 +1,128 @@
using System;
using System.Linq;
using Centron.BusinessLogic.WebServices.ItPlanner;
using Centron.BusinessLogic.WebServices.Sales.Support;
using Centron.Interfaces.BL;
using Centron.Interfaces.ItPlaner;
using Centron.Interfaces.Sales.Helpdesks;
using Centron.Tests.EndToEnd.Infrastructure;
using Xunit;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.ServiceBoardWeb;
public class ServiceBoardWebTests(ITestOutputHelper testOutputHelper)
: EndToEndTest(testOutputHelper)
{
[SkipOnLinuxFact]
public override void Execute()
{
this.PrepareDatabase();
this.TestHelpdeskType();
this.TestHelpdeskStatus();
this.TestHelpdeskPriority();
this.TestHelpdeskCategory();
this.TestHelpdeskTimerType();
this.TestVirtualObjectCategory();
}
private void PrepareDatabase()
{
}
private void TestHelpdeskType()
{
const int TypeI3D = 1;
var types = this.WithSession(s => s.GetBL<HelpdeskTypeWebServiceBL>().GetHelpdeskTypes(new HelpdeskTypeFilter()));
var type = types.First(f => f.I3D == TypeI3D);
type.ServiceBoardWebColor = "#FF0000";
type.ServiceBoardWebIcon = "thumbs-up";
this.WithSession(s => s.GetBL<HelpdeskTypeWebServiceBL>().SaveHelpdeskType(type));
var typesAfterSave = this.WithSession(s => s.GetBL<HelpdeskTypeWebServiceBL>().GetHelpdeskTypes(new HelpdeskTypeFilter()));
this.Verifier.Verify("HelpdeskType", typesAfterSave.First(f => f.I3D == TypeI3D));
}
private void TestHelpdeskStatus()
{
const int StatusI3D = 2;
var allStatus = this.WithSession(s => s.GetBL<HelpdeskWebServiceBL>().GetHelpdesksStates());
var status = allStatus.First(f => f.I3D == StatusI3D);
status.ServiceBoardWebColor = "#FF0000";
status.ServiceBoardWebIcon = "thumbs-up";
this.WithSession(s => s.GetBL<HelpdeskWebServiceBL>().SaveHelpdeskStatus(status));
var allStatusAfterSave = this.WithSession(s => s.GetBL<HelpdeskWebServiceBL>().GetHelpdesksStates());
this.Verifier.Verify("HelpdeskStatus", allStatusAfterSave.First(f => f.I3D == StatusI3D));
}
private void TestHelpdeskPriority()
{
const int PriorityI3D = 2;
var allPriorities = this.WithSession(s => s.GetBL<HelpdeskWebServiceBL>().GetActiveHelpdeskPriorities());
var priority = allPriorities.First(f => f.I3D == PriorityI3D);
priority.ServiceBoardWebColor = "#FF0000";
priority.ServiceBoardWebIcon = "thumbs-up";
this.WithSession(s => s.GetBL<HelpdeskWebServiceBL>().UpdateActiveHelpdeskPriorities(allPriorities));
var allPrioritiesAfterSave = this.WithSession(s => s.GetBL<HelpdeskWebServiceBL>().GetActiveHelpdeskPriorities());
this.Verifier.Verify("HelpdeskPriority", allPrioritiesAfterSave.First(f => f.I3D == PriorityI3D));
}
private void TestHelpdeskCategory()
{
const int CategoryI3D = 10;
var allCategories = this.WithSession(s => s.GetBL<HelpdeskCategoryWebServiceBL>().GetHelpdeskCategories(new HelpdeskCategoryFilter()));
var category = allCategories.First(f => f.I3D == CategoryI3D);
category.ServiceBoardWebColor = "#FF0000";
category.ServiceBoardWebIcon = "thumbs-up";
this.WithSession(s => s.GetBL<HelpdeskCategoryWebServiceBL>().SaveHelpdeskCategoryV2(category));
var allCategoriesAfterSave = this.WithSession(s => s.GetBL<HelpdeskCategoryWebServiceBL>().GetHelpdeskCategories(new HelpdeskCategoryFilter()));
this.Verifier.Verify("HelpdeskCategory", allCategoriesAfterSave.First(f => f.I3D == CategoryI3D));
}
private void TestHelpdeskTimerType()
{
const int TimerTypeI3D = 3;
var allTimerTypes = this.WithSession(s => s.GetBL<HelpdeskTimerTypeWebServiceBL>().GetHelpdeskTimerTypes());
var timerType = allTimerTypes.First(f => f.I3D == TimerTypeI3D);
timerType.ServiceBoardWebColor = "#FF0000";
timerType.ServiceBoardWebIcon = "thumbs-up";
this.WithSession(s => s.GetBL<HelpdeskTimerTypeWebServiceBL>().SaveHelpdeskTimerType(timerType));
var allTimerTypesAfterSave = this.WithSession(s => s.GetBL<HelpdeskTimerTypeWebServiceBL>().GetHelpdeskTimerTypes());
this.Verifier.Verify("HelpdeskTimerType", allTimerTypesAfterSave.First(f => f.I3D == TimerTypeI3D));
}
private void TestVirtualObjectCategory()
{
const int CategoryI3D = 1;
var allCategories = this.WithSession(s => s.GetBL<ChecklistVirtualObjectCategoryWebServiceBL>().GetChecklistVirtualObjectCategoriesByFilter(new RBChecklistVirtualObjectCategoryFilter())).ThrowIfError();
var category = allCategories.First(f => f.I3D == CategoryI3D);
category.ServiceBoardWebIcon = "thumbs-up";
this.WithSession(s => s.GetBL<ChecklistVirtualObjectCategoryWebServiceBL>().SaveOrUpdateChecklistVirtualObjectCategory(category));
var allCategoriesAfterSave = this.WithSession(s => s.GetBL<ChecklistVirtualObjectCategoryWebServiceBL>().GetChecklistVirtualObjectCategoriesByFilter(new RBChecklistVirtualObjectCategoryFilter())).ThrowIfError();
this.Verifier.Verify("VirtualObjectCategory", allCategoriesAfterSave.First(f => f.I3D == CategoryI3D));
}
}
@@ -0,0 +1,14 @@
{
CategoryKind: 1,
ChangedDate: DateTime,
Description: null,
I3D: 1,
Image: 'iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAASXSURBVHhe7ZvPS1RRFMevUqCQ4AQtUqqxolXoFLQKbATBZfYXqC3b6GsdqFDr0UXr7C9Ql8KEk9AqqJFcheVURAuhMQp0EdT53h/jmzfvx31v3pt54/UDx/dDmXnn+869953jeV0saaxinn7CRsiyZDkyP8pkFbJtshIrjJdwMiniF8Aq9tPPSbL7chsHa2TrfFsYP+BnYiI+AcSdniKb5sfJsUK2TEIgUpqmeQGE4/Nk2LYSDI3FZodIdAFEqBfIkr7jQSAirKhDI5oAVhFj+wUZREgDcH6GRMBcEYrwAlhFON7uu+7FCokwI/e10BdAhPwmWdAy1m4wOY7pDgk9ATrHeYW2CMECWEU8vLwnS8t41wXODwWJ0C237og7v0rWac4DEbXCB0/8BeissHcD1w4fPPEWQMz2ney8Iid9ccV9DhDrPEJfi/z1DMtfy7Ar53tYlsxJ+fsf9uvwLyt9qtL+b3ZA+23ggdtzQqMAYszskfmOHTg6P3GVTd68wPp7z8izelR+HrGhp2/kUfPgWvCZAbhOim5DAI+3gZPe9J0BsouhnQduUZIb7GMLUlC33zvB9+L7Vx8Os70nd+VZX+ATfKujPgJEYuM7aShwsfMTQ/IoPF2PX8k9AYbR5qPb8kjAh8tR43DJZnobRHJ+ng94PqglUM4IQFaXGhAVmFucphMhPtT5eCyAVcSM3+qUth3kpa8cewTMyq0J1HwVAoiZP60ZXhJMS59rERBX7a6T4D4rAVDANA3u82kEyLXfTMh3RIC5ApDvEAD/sTGVEQiAio+pZCFALDk/Ulykuytvf7DFjb2a4RysTSlwELkumgj+yYNQIBmaomxseesrW9vZ10lHeQannu8XNj7LswK3ZCgMIZKhOiILEDcQZnVmOHSiA/HXP+zzyItCagRQqCjJDZyj/bMNVSZVXUKqHMfQikUAXKBIU3vZyCAu/LhI8npXFGBwwZXqEd+micgCwMm50ct8HggbtrhzY8/fyaP2oh6FQwPnURGKUpxAtDjB58yNXuKToS7428LkDVZ9dk+eCU9Tq0CSJTGsKpXqId9+sa0waog5RYy6CiACYum0iBs1r6DwCaGVoWjqFkERKUMANCSZSgUCoBvLVLYhQKJtaCmn1G2vkRsH+a6WwdC9NScA7rMSAE2IpsF9Po0Aviv+Y4p+O1NANxlPUlQEgJdyawLLcmsTQKwGJqwI6ECvPf3aIwAsym0kVI7uNJ1qUQup89GtQ0SrExTJ0Cxlb6jErO/ss9JuVf7GGyQ82UwPJTR9zFr7KM8KWlQSa+gkbapFJs47iyoQBLAXU3TANaAuubT1TZ7xxLVFJpYmqTiBEIgSbP2arrblcAtxEzSbpBTpbooOi2cTtbcAwCqiRbbTewXL5Pwtud+AcxVwMkaWyoKJJqJp2gf/CACak2IKcZ30nARFgHpMRvGvkyIB1xroPAiOAIWIBENfmLCT7tVhiRy35L4W4QUAJ+ilqeA5wA3xRZgX0pBC4xow3iPVNKJFgB1jX5x0ItpP0YGZ9PyQsldnnYjVAnOEYS9PeyGGCCyFr88z9h/RdaErpvj6zAAAAABJRU5ErkJggg==',
IsFix: true,
Name: 'Server',
ParentI3D: null,
ServiceBoardWebIcon: 'thumbs-up',
SourceI3D: null,
Status: 0,
VirtualObjectKind: 1
}