選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

MessageDeletionJob.cs 1.0KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Quartz;
  2. using SecureSharing.Business.Interfaces;
  3. namespace SecureSharing.Quartz;
  4. public sealed class MessageDeletionJob : IJob
  5. {
  6. private readonly string _basePath;
  7. private readonly string _basePathTmp;
  8. private readonly IMessageService _messageService;
  9. public MessageDeletionJob(IMessageService messageService, IWebHostEnvironment webHostEnvironment)
  10. {
  11. _messageService = messageService;
  12. _basePath = Path.Combine(webHostEnvironment.WebRootPath.Split('/')[0], "files");
  13. _basePathTmp = Path.Combine(webHostEnvironment.WebRootPath.Split('/')[0], "filestmp");
  14. }
  15. public async Task Execute(IJobExecutionContext context)
  16. {
  17. try
  18. {
  19. var foldersToRemove = await _messageService.DeleteExpiredMessages();
  20. foreach (var path in foldersToRemove.Select(folder => Path.Combine(_basePath, folder)))
  21. Directory.Delete(path, true);
  22. Directory.Delete(_basePathTmp, true);
  23. }
  24. catch (Exception ex)
  25. {
  26. /*Log*/
  27. }
  28. }
  29. }