Enhance workflow handling and enforce stricter exceptions
Enhanced `GetWorkflowsQueryHandler` to validate listing data in workflow sources and return appropriate responses. Updated `DocumentRepository.GetAsync` and `WorkflowRepository.CloseAsync` to throw `NotSupportedException` for unimplemented functionality, ensuring these methods cannot be used until finalized. Added `DigitalData.TaskFlow.Domain.Enums` dependency to support new logic in `GetWorkflowsQueryHandler`.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using DigitalData.TaskFlow.Application.Common.Factories;
|
||||
using DigitalData.TaskFlow.Application.Common.Interfaces;
|
||||
using DigitalData.TaskFlow.Domain.Common;
|
||||
using DigitalData.TaskFlow.Domain.Enums;
|
||||
using DigitalData.TaskFlow.Domain.Workflows;
|
||||
using FluentValidation;
|
||||
using MediatR;
|
||||
@@ -44,6 +45,20 @@ public sealed class GetWorkflowsQueryHandler(IWorkflowRepository workflowReposit
|
||||
{
|
||||
var data = await workflowRepository.GetAsync(request.WisagId, cancellationToken);
|
||||
|
||||
var hasListingData = data.Sources
|
||||
.SelectMany(source => source switch
|
||||
{
|
||||
FerdinandSourceBlock ferdinand => ferdinand.Listing,
|
||||
ContractsSourceBlock contracts => contracts.Listing,
|
||||
_ => []
|
||||
})
|
||||
.Any();
|
||||
|
||||
if (!hasListingData)
|
||||
{
|
||||
return ApiEnvelopeFactory.Create(data, MetaCode.NoOpenWorkflows);
|
||||
}
|
||||
|
||||
return ApiEnvelopeFactory.Create(data);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user