Просмотр исходного кода

Now job deletes files as well

master
radivoje.milutinovic 3 лет назад
Родитель
Сommit
b7b7768c89

+ 1
- 1
SecureSharing.Business/Interfaces/IMessageService.cs Просмотреть файл

@@ -7,7 +7,7 @@ public interface IMessageService
{
public Task<IEnumerable<MessageDto>> GetAll();
public Task<Guid> Create(MessageDto messageDto, PeriodOfValidity chosenPeriod);
public Task DeleteExpiredMessages();
public Task<List<string>> DeleteExpiredMessages();
public Task InvalidateMessage(int id);
public Task Update(MessageDto messageDto);


+ 4
- 1
SecureSharing.Business/Services/MessageService.cs Просмотреть файл

@@ -37,12 +37,15 @@ public sealed class MessageService : IMessageService
return Guid.Parse(message.Code);
}

public async Task DeleteExpiredMessages()
public async Task<List<string>> DeleteExpiredMessages()
{
var result = await _dbContext.Messages
.Where(m => (m.ExpiryDate != null && m.ExpiryDate <= DateTime.UtcNow) || !m.IsValid).ToListAsync();
var toReturn = result.Select(x => x.Code).ToList();
_dbContext.RemoveRange(result);
await _dbContext.SaveChangesAsync();
return toReturn;
}

public async Task InvalidateMessage(int id)

+ 13
- 2
SecureSharing/Quartz/MessageDeletionJob.cs Просмотреть файл

@@ -6,17 +6,28 @@ namespace SecureSharing.Quartz;
public sealed class MessageDeletionJob : IJob
{
private readonly IMessageService _messageService;
private readonly string _basePath;
private readonly string _basePathTmp;

public MessageDeletionJob(IMessageService messageService)
public MessageDeletionJob(IMessageService messageService, IWebHostEnvironment webHostEnvironment)
{
_messageService = messageService;
_basePath = Path.Combine(webHostEnvironment.WebRootPath.Split('/')[0], "files");
_basePathTmp = Path.Combine(webHostEnvironment.WebRootPath.Split('/')[0], "filestmp");
}

public async Task Execute(IJobExecutionContext context)
{
try
{
await _messageService.DeleteExpiredMessages();
var foldersToRemove = await _messageService.DeleteExpiredMessages();

foreach (var path in foldersToRemove.Select(folder => Path.Combine(_basePath, folder)))
{
Directory.Delete(path, true);
}

Directory.Delete(_basePathTmp, true);
}
catch (Exception ex)
{

Загрузка…
Отмена
Сохранить