initial commit

This commit is contained in:
2026-07-21 15:36:49 +07:00
commit 77f66132bc
2640 changed files with 850901 additions and 0 deletions
@@ -0,0 +1,63 @@
using Application.Common.Services.FileDocumentManager;
using FluentValidation;
using MediatR;
namespace Application.Features.FileDocumentManager.Commands;
public class CreateDocumentResult
{
public string? DocumentName { get; init; }
}
public class CreateDocumentRequest : IRequest<CreateDocumentResult>
{
public string? OriginalFileName { get; init; }
public string? Extension { get; init; }
public byte[]? Data { get; init; }
public long? Size { get; init; }
public string? CreatedById { get; init; }
public string? Description { get; init; }
}
public class CreateDocumentValidator : AbstractValidator<CreateDocumentRequest>
{
public CreateDocumentValidator()
{
RuleFor(x => x.OriginalFileName)
.NotEmpty();
RuleFor(x => x.Extension)
.NotEmpty();
RuleFor(x => x.Data)
.NotEmpty();
RuleFor(x => x.Size)
.NotEmpty();
}
}
public class CreateDocumentHandler : IRequestHandler<CreateDocumentRequest, CreateDocumentResult>
{
private readonly IFileDocumentService _uploadDocument;
public CreateDocumentHandler(IFileDocumentService uploadDocument)
{
_uploadDocument = uploadDocument;
}
public async Task<CreateDocumentResult> Handle(CreateDocumentRequest request, CancellationToken cancellationToken)
{
var result = await _uploadDocument.UploadAsync(
request.OriginalFileName,
request.Extension,
request.Data,
request.Size,
request.Description,
request.CreatedById,
cancellationToken);
return new CreateDocumentResult { DocumentName = result };
}
}
@@ -0,0 +1,44 @@
using Application.Common.Services.FileDocumentManager;
using FluentValidation;
using MediatR;
namespace Application.Features.FileDocumentManager.Queries;
public class GetDocumentResult
{
public byte[]? Data { get; init; }
}
public class GetDocumentRequest : IRequest<GetDocumentResult>
{
public string? DocumentName { get; init; }
}
public class GetDocumentValidator : AbstractValidator<GetDocumentRequest>
{
public GetDocumentValidator()
{
RuleFor(x => x.DocumentName)
.NotEmpty();
}
}
public class GetDocumentHandler : IRequestHandler<GetDocumentRequest, GetDocumentResult>
{
private readonly IFileDocumentService _documentService;
public GetDocumentHandler(IFileDocumentService documentService)
{
_documentService = documentService;
}
public async Task<GetDocumentResult> Handle(GetDocumentRequest request, CancellationToken cancellationToken)
{
var result = await _documentService.GetFileAsync(request.DocumentName ?? "", cancellationToken);
return new GetDocumentResult { Data = result };
}
}