Browse Source

Delete PDF file from blob container

pull/22430/head
liangshiwei 12 months 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 IDocumentFullSearch _elasticSearchService;
private readonly IGuidGenerator _guidGenerator;
private readonly IOptions<DocsProjectPdfGeneratorOptions> _pdfGeneratorOptions;
private readonly IProjectPdfFileStore _projectPdfFileStore;
public ProjectAdminAppService(
IProjectRepository projectRepository,
IDocumentRepository documentRepository,
IDocumentFullSearch elasticSearchService,
IGuidGenerator guidGenerator,
IOptions<DocsProjectPdfGeneratorOptions> pdfGeneratorOptions)
IProjectPdfFileStore projectPdfFileStore)
{
ObjectMapperContext = typeof(DocsAdminApplicationModule);
LocalizationResource = typeof(DocsResource);
@ -39,7 +39,7 @@ namespace Volo.Docs.Admin.Projects
_documentRepository = documentRepository;
_elasticSearchService = elasticSearchService;
_guidGenerator = guidGenerator;
_pdfGeneratorOptions = pdfGeneratorOptions;
_projectPdfFileStore = projectPdfFileStore;
}
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)
{
var project = await _projectRepository.GetAsync(input.ProjectId, includeDetails: true);
project.RemovePdfFile(_pdfGeneratorOptions.Value.CalculatePdfFileName(project, input.Version, input.LanguageCode));
await _projectRepository.UpdateAsync(project);
await _projectPdfFileStore.DeleteAsync(project, input.Version, input.LanguageCode);
}
}
}

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));
}
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<Stream> GetOrNullAsync(Project project, string version, string languageCode);
Task DeleteAsync(Project project, string version, string languageCode);
}
Loading…
Cancel
Save