Browse Source

Delete PDF file from blob container

pull/22430/head
liangshiwei 1 year ago
parent
commit
df7792fbe5
  1. 10
      modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs
  2. 10
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Pdf/BlobProjectPdfFileStore.cs
  3. 2
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Pdf/IProjectPdfFileStore.cs

10
modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs

@ -23,14 +23,14 @@ namespace Volo.Docs.Admin.Projects
private readonly IDocumentRepository _documentRepository; private readonly IDocumentRepository _documentRepository;
private readonly IDocumentFullSearch _elasticSearchService; private readonly IDocumentFullSearch _elasticSearchService;
private readonly IGuidGenerator _guidGenerator; private readonly IGuidGenerator _guidGenerator;
private readonly IOptions<DocsProjectPdfGeneratorOptions> _pdfGeneratorOptions; private readonly IProjectPdfFileStore _projectPdfFileStore;
public ProjectAdminAppService( public ProjectAdminAppService(
IProjectRepository projectRepository, IProjectRepository projectRepository,
IDocumentRepository documentRepository, IDocumentRepository documentRepository,
IDocumentFullSearch elasticSearchService, IDocumentFullSearch elasticSearchService,
IGuidGenerator guidGenerator, IGuidGenerator guidGenerator,
IOptions<DocsProjectPdfGeneratorOptions> pdfGeneratorOptions) IProjectPdfFileStore projectPdfFileStore)
{ {
ObjectMapperContext = typeof(DocsAdminApplicationModule); ObjectMapperContext = typeof(DocsAdminApplicationModule);
LocalizationResource = typeof(DocsResource); LocalizationResource = typeof(DocsResource);
@ -39,7 +39,7 @@ namespace Volo.Docs.Admin.Projects
_documentRepository = documentRepository; _documentRepository = documentRepository;
_elasticSearchService = elasticSearchService; _elasticSearchService = elasticSearchService;
_guidGenerator = guidGenerator; _guidGenerator = guidGenerator;
_pdfGeneratorOptions = pdfGeneratorOptions; _projectPdfFileStore = projectPdfFileStore;
} }
public virtual async Task<PagedResultDto<ProjectDto>> GetListAsync(PagedAndSortedResultRequestDto input) public virtual async Task<PagedResultDto<ProjectDto>> GetListAsync(PagedAndSortedResultRequestDto input)
@ -199,9 +199,7 @@ namespace Volo.Docs.Admin.Projects
public virtual async Task DeletePdfFileAsync(DeletePdfFileInput input) public virtual async Task DeletePdfFileAsync(DeletePdfFileInput input)
{ {
var project = await _projectRepository.GetAsync(input.ProjectId, includeDetails: true); var project = await _projectRepository.GetAsync(input.ProjectId, includeDetails: true);
project.RemovePdfFile(_pdfGeneratorOptions.Value.CalculatePdfFileName(project, input.Version, input.LanguageCode)); await _projectPdfFileStore.DeleteAsync(project, input.Version, input.LanguageCode);
await _projectRepository.UpdateAsync(project);
} }
} }
} }

10
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Pdf/BlobProjectPdfFileStore.cs

@ -61,4 +61,14 @@ public class BlobProjectPdfFileStore : IProjectPdfFileStore, ITransientDependenc
return await BlobContainer.GetOrNullAsync(Options.Value.CalculatePdfFileName(project, version, languageCode)); return await BlobContainer.GetOrNullAsync(Options.Value.CalculatePdfFileName(project, version, languageCode));
} }
public virtual async Task DeleteAsync(Project project, string version, string languageCode)
{
var fileName = Options.Value.CalculatePdfFileName(project, version, languageCode);
await BlobContainer.DeleteAsync(fileName);
project.RemovePdfFile(fileName);
await ProjectRepository.UpdateAsync(project);
}
} }

2
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Pdf/IProjectPdfFileStore.cs

@ -8,4 +8,6 @@ public interface IProjectPdfFileStore
Task SetAsync(Project project, string version, string languageCode, Stream stream); Task SetAsync(Project project, string version, string languageCode, Stream stream);
Task<Stream> GetOrNullAsync(Project project, string version, string languageCode); Task<Stream> GetOrNullAsync(Project project, string version, string languageCode);
Task DeleteAsync(Project project, string version, string languageCode);
} }
Loading…
Cancel
Save