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,5 @@
[
'select TOP (1) directory0_.I3D as i1_82_, directory0_.Name as name2_82_, directory0_.ImageIndex as imageindex3_82_, directory0_.SelectedIndex as selectedindex4_82_, directory0_.numChildren as numchildren5_82_, directory0_.numDocuments as numdocuments6_82_, directory0_.Status as status16_82_, directory0_.IsDocSyncActive as isdocsyncactive9_82_, directory0_.CreatedBy as createdby10_82_, directory0_.CreatedDate as createddate11_82_, directory0_.CreatedVersion as createdversion12_82_, directory0_.ChangedBy as changedby13_82_, directory0_.ChangedDate as changeddate14_82_, directory0_.ChangedVersion as changedversion15_82_, directory0_.KndDirectoryI3D as knddirectoryi7_82_, directory0_.OwnerI3D as owneri8_82_ from dbo.Directorys directory0_ where directory0_.I3D=@p0',
'select document0_.I3D as i1_85_, document0_.Name as name2_85_, document0_.DocSize as docsize3_85_, document0_.DocType as doctype4_85_, document0_.CreationDate as creationdate5_85_, document0_.Angelegt_von as angelegt6_85_, document0_.CreatedVersion as createdversion7_85_, document0_.Geandert_am as geandert8_85_, document0_.Geandert_von as geandert9_85_, document0_.ChangedVersion as changedversion10_85_, document0_.NumPages as numpages12_85_, document0_.ImageIndex as imageindex13_85_, document0_.DocDate as docdate14_85_, document0_.PublicDelete as publicdelete15_85_, document0_.Version as version16_85_, document0_.Attachment as attachment17_85_, document0_.BelongsToKundenI3D as belongstokundeni18_85_, document0_.LockWorkstation as lockworkstation19_85_, document0_.LockPath as lockpath20_85_, document0_.Status as status21_85_, document0_.Flags as flags22_85_, document0_.ThumbnailI3D as thumbnaili23_85_, document0_.HelpdeskHistoryI3D as helpdeskhistoryi24_85_, document0_.UploadedByContactI3D as uploadedbycontacti25_85_, document0_.ReferenzI3D as referenzi26_85_, document0_.LockUserI3D as lockuseri27_85_, document0_.OwnerDirI3D as ownerdiri28_85_, document0_.BelongsToI3D as belongstoi29_85_, document0_.DMSSyncUniqueID as dmssyncuniqueid30_85_, document0_.DMSSyncDate as dmssyncdate31_85_, document0_.DMSSyncType as dmssynctype32_85_, document0_.DMSSyncEmployeeI3D as dmssyncemployeei33_85_, document0_.DocumentKind as documentkind34_85_ from dbo.Documents document0_ where document0_.OwnerDirI3D=@p0',
'SELECT employeeco0_.I3D as i1_72_0_, employeeco0_.Status as status2_72_0_, employeeco0_.Vorname as vorname3_72_0_, employeeco0_.Name as name4_72_0_, employeeco0_.KurzZeich as kurzzeich5_72_0_, employeeco0_.Eintritt as eintritt6_72_0_, employeeco0_.Austritt as austritt7_72_0_, employeeco0_.Telefon1 as telefon8_72_0_, employeeco0_.Email as email9_72_0_, employeeco0_.VorgesetzterI3D as vorgesetzteri10_72_0_, employeeco0_.FilialI3D as filiali11_72_0_, employeeco0_.Dispatcher as dispatcher12_72_0_, employeeco0_.IsActive as isactive13_72_0_, employeeco0_.Availability as availability14_72_0_, employeeco0_.LastAvailabilityChange as lastavailabilitychange15_72_0_, employeeco0_.Resturlaub as resturlaub16_72_0_, employeeco0_.Urlaubsanspruch as urlaubsanspruch17_72_0_, employeeco0_.Personalnummer as personalnummer18_72_0_, employeeco0_.GraphOdataDeltaLink as graphodatadeltalink19_72_0_, employeeco0_.SupportLevelI3D as supportleveli20_72_0_, employeeco0_.Sprachkenntnisse as sprachkenntnisse21_72_0_ FROM dbo.Personal employeeco0_ WHERE employeeco0_.I3D=@p0'
]
@@ -0,0 +1,8 @@
[
'WITH cte_Directories AS (\r\n\tSELECT d.I3D, d.OwnerI3D, 1 AS Level, CAST(CONCAT(\',\', CAST(d.I3D AS VARCHAR), \',\') AS VARCHAR(MAX)) AS Pfad\r\n\tFROM dbo.Directorys d\r\n\tWHERE d.I3D = @p0\r\n\tUNION ALL\r\n\tSELECT d.I3D, d.OwnerI3D, cte.Level + 1 AS Level, Pfad + CAST(d.I3D AS VARCHAR) + \',\'\r\n\tFROM dbo.Directorys d\r\n\tINNER JOIN cte_Directories cte ON cte.OwnerI3D = d.I3D\r\n\tWHERE Pfad NOT LIKE \'%,\' + CAST(d.I3D AS VARCHAR) + \',%\'\r\n)\r\nSELECT dir.I3D, dir.Name, cte.Level, p.I3D AS EmployeeI3D, a.I3D AS ArticleI3D\r\nFROM dbo.Directorys dir\r\nINNER JOIN cte_Directories cte ON cte.I3D = dir.I3D\r\nLEFT OUTER JOIN Personal p ON p.RootDirI3D = dir.I3D\r\nLEFT OUTER JOIN ARTIK a ON a.DocI3D = dir.I3D\r\nORDER BY cte.Level',
'select TOP (1) kunden0_.I3D as col_0_0_ from dbo.Kunden kunden0_ where kunden0_.RootDirI3D=@p0',
'SELECT st.Recht AS ID\r\nFROM dbo.Sichtrus st\r\nINNER JOIN dbo.Sichmemb sm ON sm.Gruppe = st.Gruppe\r\nWHERE sm.Benutzer = @p0\r\nAND st.Recht IN (@p1, @p2, @p3, @p4, @p5, @p6, @p7)',
'select TOP (1) directory0_.I3D as i1_82_, directory0_.Name as name2_82_, directory0_.ImageIndex as imageindex3_82_, directory0_.SelectedIndex as selectedindex4_82_, directory0_.numChildren as numchildren5_82_, directory0_.numDocuments as numdocuments6_82_, directory0_.Status as status16_82_, directory0_.IsDocSyncActive as isdocsyncactive9_82_, directory0_.CreatedBy as createdby10_82_, directory0_.CreatedDate as createddate11_82_, directory0_.CreatedVersion as createdversion12_82_, directory0_.ChangedBy as changedby13_82_, directory0_.ChangedDate as changeddate14_82_, directory0_.ChangedVersion as changedversion15_82_, directory0_.KndDirectoryI3D as knddirectoryi7_82_, directory0_.OwnerI3D as owneri8_82_ from dbo.Directorys directory0_ where directory0_.I3D=@p0',
'SELECT files0_.OwnerDirI3D as ownerdiri28_85_1_, files0_.I3D as i1_85_1_, files0_.I3D as i1_85_0_, files0_.Name as name2_85_0_, files0_.DocSize as docsize3_85_0_, files0_.DocType as doctype4_85_0_, files0_.CreationDate as creationdate5_85_0_, files0_.Angelegt_von as angelegt6_85_0_, files0_.CreatedVersion as createdversion7_85_0_, files0_.Geandert_am as geandert8_85_0_, files0_.Geandert_von as geandert9_85_0_, files0_.ChangedVersion as changedversion10_85_0_, files0_.NumPages as numpages12_85_0_, files0_.ImageIndex as imageindex13_85_0_, files0_.DocDate as docdate14_85_0_, files0_.PublicDelete as publicdelete15_85_0_, files0_.Version as version16_85_0_, files0_.Attachment as attachment17_85_0_, files0_.BelongsToKundenI3D as belongstokundeni18_85_0_, files0_.LockWorkstation as lockworkstation19_85_0_, files0_.LockPath as lockpath20_85_0_, files0_.Status as status21_85_0_, files0_.Flags as flags22_85_0_, files0_.ThumbnailI3D as thumbnaili23_85_0_, files0_.HelpdeskHistoryI3D as helpdeskhistoryi24_85_0_, files0_.UploadedByContactI3D as uploadedbycontacti25_85_0_, files0_.ReferenzI3D as referenzi26_85_0_, files0_.LockUserI3D as lockuseri27_85_0_, files0_.OwnerDirI3D as ownerdiri28_85_0_, files0_.BelongsToI3D as belongstoi29_85_0_, files0_.DMSSyncUniqueID as dmssyncuniqueid30_85_0_, files0_.DMSSyncDate as dmssyncdate31_85_0_, files0_.DMSSyncType as dmssynctype32_85_0_, files0_.DMSSyncEmployeeI3D as dmssyncemployeei33_85_0_, files0_.DocumentKind as documentkind34_85_0_ FROM dbo.Documents files0_ WHERE files0_.OwnerDirI3D=@p0',
'SELECT employeeco0_.I3D as i1_72_0_, employeeco0_.Status as status2_72_0_, employeeco0_.Vorname as vorname3_72_0_, employeeco0_.Name as name4_72_0_, employeeco0_.KurzZeich as kurzzeich5_72_0_, employeeco0_.Eintritt as eintritt6_72_0_, employeeco0_.Austritt as austritt7_72_0_, employeeco0_.Telefon1 as telefon8_72_0_, employeeco0_.Email as email9_72_0_, employeeco0_.VorgesetzterI3D as vorgesetzteri10_72_0_, employeeco0_.FilialI3D as filiali11_72_0_, employeeco0_.Dispatcher as dispatcher12_72_0_, employeeco0_.IsActive as isactive13_72_0_, employeeco0_.Availability as availability14_72_0_, employeeco0_.LastAvailabilityChange as lastavailabilitychange15_72_0_, employeeco0_.Resturlaub as resturlaub16_72_0_, employeeco0_.Urlaubsanspruch as urlaubsanspruch17_72_0_, employeeco0_.Personalnummer as personalnummer18_72_0_, employeeco0_.GraphOdataDeltaLink as graphodatadeltalink19_72_0_, employeeco0_.SupportLevelI3D as supportleveli20_72_0_, employeeco0_.Sprachkenntnisse as sprachkenntnisse21_72_0_ FROM dbo.Personal employeeco0_ WHERE employeeco0_.I3D=@p0'
]
@@ -0,0 +1,63 @@
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using Centron.BusinessLogic;
using Centron.BusinessLogic.Administration.FileManagement;
using Centron.BusinessLogic.WebServices.Administration.FileManagement;
using Centron.DAO.AdoNETDataAccess;
using Centron.Tests.EndToEnd.Infrastructure;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.TicketTests.Ticket127512;
public class Ticket127512Tests : EndToEndTest
{
public Ticket127512Tests(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
}
private const int DirectoryI3D = 77; //Directory "Kunde 10001"
public override void Execute()
{
// DocumentBL
// .GetDocumentsByDirectory
// .GetDocumentsFromDirectory
//
// These methods had a little performance-problem, because they would always load the file-contents from the database
// even if they were not needed
this.PrepareDatabase();
var getDocumentsByDirectorySqlCommands = SqlDiagnosticObserver.Start(() =>
{
using var session = new BLSession();
session.GetBL<DocumentWebServiceBL>().GetDocumentsByDirectory(DirectoryI3D);
});
var loggedInUser = this.GetLoggedInUser();
var getDocumentsFromDirectorySqlCommands = SqlDiagnosticObserver.Start(() =>
{
using var session = new BLSession();
session.GetBL<DocumentWebServiceBL>().GetDocumentsFromDirectory(loggedInUser, DirectoryI3D);
});
this.Verifier.Verify("SqlCommands_GetDocumentsByDirectory", getDocumentsByDirectorySqlCommands.Select(f => f.CommandText));
this.Verifier.Verify("SqlCommands_GetDocumentsFromDirectory", getDocumentsFromDirectorySqlCommands.Select(f => f.CommandText));
}
private void PrepareDatabase()
{
for (int i = 0; i < 50; i++)
{
var testData = Encoding.UTF8.GetBytes("Testdata");
using var session = new BLSession();
session.GetBL<DocumentWebServiceBL>().AddDocumentToDirectory(this.GetLoggedInUser(), DirectoryI3D, testData, $"Test {i}.txt");
}
this.Verifier.VerifySql("DocumentsTable", $"SELECT DocCount = COUNT(*) FROM dbo.Documents WHERE OwnerDirI3D = {DirectoryI3D}");
}
}