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

Now job deletes files as well

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

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

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



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

return Guid.Parse(message.Code); return Guid.Parse(message.Code);
} }


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


public async Task InvalidateMessage(int id) public async Task InvalidateMessage(int id)

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

public sealed class MessageDeletionJob : IJob public sealed class MessageDeletionJob : IJob
{ {
private readonly IMessageService _messageService; private readonly IMessageService _messageService;
private readonly string _basePath;
private readonly string _basePathTmp;


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


public async Task Execute(IJobExecutionContext context) public async Task Execute(IJobExecutionContext context)
{ {
try 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) catch (Exception ex)
{ {

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