@@ -23,24 +23,52 @@ public AddMultipleRepositoriesCommandHandler(
2323
2424 public async Task < IEnumerable < GitHubRepository > > Handle ( AddMultipleRepositoriesCommand request , CancellationToken cancellationToken )
2525 {
26- _logger . LogInformation ( "Adding {Count} repositories to the system." , request . Repositories . Count ( ) ) ;
26+ _logger . LogInformation ( "=== START AddMultipleRepositoriesCommandHandler ===" ) ;
27+ _logger . LogInformation ( "Received request to add {Count} repositories" , request . Repositories . Count ( ) ) ;
28+
29+ // Log each repository in the request
30+ var repoList = request . Repositories . ToList ( ) ;
31+ for ( int i = 0 ; i < repoList . Count ; i ++ )
32+ {
33+ var repo = repoList [ i ] ;
34+ _logger . LogInformation ( "Repository [{Index}]: Owner='{Owner}', Name='{RepoName}', CloneUrl='{CloneUrl}'" ,
35+ i , repo . Owner ?? "NULL" , repo . RepoName ?? "NULL" , repo . CloneUrl ?? "NULL" ) ;
36+ }
2737
2838 var addedRepositories = new List < GitHubRepository > ( ) ;
2939
3040 foreach ( var repo in request . Repositories )
3141 {
3242 try
3343 {
44+ _logger . LogInformation ( "Processing repository: {Owner}/{Name}" , repo . Owner , repo . RepoName ) ;
45+
46+ // Validate repository data
47+ if ( string . IsNullOrWhiteSpace ( repo . Owner ) )
48+ {
49+ _logger . LogWarning ( "Skipping repository with empty Owner. RepoName={RepoName}" , repo . RepoName ?? "NULL" ) ;
50+ continue ;
51+ }
52+
53+ if ( string . IsNullOrWhiteSpace ( repo . RepoName ) )
54+ {
55+ _logger . LogWarning ( "Skipping repository with empty RepoName. Owner={Owner}" , repo . Owner ?? "NULL" ) ;
56+ continue ;
57+ }
58+
3459 // Check if repository already exists
60+ _logger . LogInformation ( "Checking if repository {Owner}/{Name} already exists..." , repo . Owner , repo . RepoName ) ;
3561 var existingRepo = await _repositoryDataService . GetRepositoryByOwnerAndNameAsync ( repo . Owner , repo . RepoName ) ;
3662 if ( existingRepo != null )
3763 {
38- _logger . LogInformation ( "Repository {Owner}/{Name} already exists, skipping." , repo . Owner , repo . RepoName ) ;
64+ _logger . LogInformation ( "Repository {Owner}/{Name} already exists with ID {Id}, adding to result list." ,
65+ repo . Owner , repo . RepoName , existingRepo . Id ) ;
3966 addedRepositories . Add ( existingRepo ) ;
4067 continue ;
4168 }
4269
4370 // Create new repository
71+ _logger . LogInformation ( "Creating new repository entity for {Owner}/{Name}" , repo . Owner , repo . RepoName ) ;
4472 var newRepo = new GitHubRepository
4573 {
4674 Id = Guid . NewGuid ( ) ,
@@ -50,25 +78,35 @@ public async Task<IEnumerable<GitHubRepository>> Handle(AddMultipleRepositoriesC
5078 LastAnalyzedCommitDate = DateTime . MinValue // Default value
5179 } ;
5280
81+ _logger . LogInformation ( "Saving repository {Owner}/{Name} to database with ID {Id}" ,
82+ newRepo . Owner , newRepo . Name , newRepo . Id ) ;
5383 await _repositoryDataService . AddRepositoryAsync ( newRepo ) ;
84+
85+ _logger . LogInformation ( "Successfully saved repository {Owner}/{Name}. Adding to result list." ,
86+ newRepo . Owner , newRepo . Name ) ;
5487 addedRepositories . Add ( newRepo ) ;
5588
56- _logger . LogInformation ( "Successfully added repository {Owner}/{Name} with ID {Id}. Dispatching AnalyzeRepositoryCommitsCommand. " ,
89+ _logger . LogInformation ( "Dispatching AnalyzeRepositoryCommitsCommand for repository {Owner}/{Name} (ID: {Id}) " ,
5790 newRepo . Owner , newRepo . Name , newRepo . Id ) ;
5891
5992 // Dispatch command to analyze the newly added repository
6093 await _mediator . Send ( new AnalyzeRepositoryCommitsCommand ( newRepo . Id ) , cancellationToken ) ;
94+
95+ _logger . LogInformation ( "Analysis command dispatched for repository {Owner}/{Name}" , newRepo . Owner , newRepo . Name ) ;
6196 }
6297 catch ( Exception ex )
6398 {
64- _logger . LogError ( ex , "Failed to add repository {Owner}/{Name}: {Message}" ,
65- repo . Owner , repo . RepoName , ex . Message ) ;
99+ _logger . LogError ( ex , "EXCEPTION while adding repository {Owner}/{Name}: {Message}. Stack: {StackTrace }" ,
100+ repo . Owner ?? "NULL" , repo . RepoName ?? "NULL" , ex . Message , ex . StackTrace ) ;
66101 // Continue with other repositories even if one fails
67102 }
68103 }
69104
70- _logger . LogInformation ( "Successfully added {Count} out of {Total} repositories." ,
105+ _logger . LogInformation ( "=== COMPLETED AddMultipleRepositoriesCommandHandler ===" ) ;
106+ _logger . LogInformation ( "Final result: Successfully added {Count} out of {Total} repositories." ,
71107 addedRepositories . Count , request . Repositories . Count ( ) ) ;
108+ _logger . LogInformation ( "Repository IDs added: {Ids}" ,
109+ string . Join ( ", " , addedRepositories . Select ( r => $ "{ r . Owner } /{ r . Name } ({ r . Id } )") ) ) ;
72110
73111 return addedRepositories ;
74112 }
0 commit comments