invalid data deletion fix
This commit is contained in:
parent
4d7fbeae42
commit
9415c60287
@ -51,15 +51,15 @@ public class DatabaseConnector
|
|||||||
{
|
{
|
||||||
meta.errorMessage = errorMessage;
|
meta.errorMessage = errorMessage;
|
||||||
await UpdateMetadataStatus(meta, SaveFileProcessingStatus.Error);
|
await UpdateMetadataStatus(meta, SaveFileProcessingStatus.Error);
|
||||||
DeleteAssociatedFiles(meta);
|
TryDeleteAssociatedFiles(meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task DeleteMetadata(SaveFileMetadata meta)
|
public async Task DeleteMetadata(SaveFileMetadata meta, string reason)
|
||||||
{
|
{
|
||||||
_logger.LogDebug($"Deleting save file (id: {meta.id} status: {meta.status} " +
|
_logger.LogDebug($"Deleting save file (id: {meta.id} reason: {reason}" +
|
||||||
$"uploadDate: {meta.uploadDateTime:yyyy/MM/dd})");
|
$"uploadDate: {meta.uploadDateTime:yyyy/MM/dd})");
|
||||||
await _db.DeleteAsync(meta);
|
await _db.DeleteAsync(meta);
|
||||||
DeleteAssociatedFiles(meta);
|
TryDeleteAssociatedFiles(meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -71,20 +71,21 @@ public class DatabaseConnector
|
|||||||
|
|
||||||
var expirationDate = DateTime.Now.AddDays(-_uploadsLifetimeDays);
|
var expirationDate = DateTime.Now.AddDays(-_uploadsLifetimeDays);
|
||||||
var metadataTable = _db.Table<SaveFileMetadata>();
|
var metadataTable = _db.Table<SaveFileMetadata>();
|
||||||
int rowCount = await metadataTable.CountAsync();
|
var metadataList = await metadataTable.ToListAsync();
|
||||||
int i = 0;
|
|
||||||
int deleteCount = 0;
|
int deleteCount = 0;
|
||||||
while(i < rowCount)
|
foreach (var meta in metadataList)
|
||||||
{
|
|
||||||
var meta = await metadataTable.ElementAtAsync(i)!;
|
|
||||||
if(meta.status != SaveFileProcessingStatus.Done ||
|
|
||||||
meta.uploadDateTime < expirationDate ||
|
|
||||||
!meta.AssociatedFilesExist())
|
|
||||||
{
|
{
|
||||||
|
string deletionReason;
|
||||||
|
if(meta.status != SaveFileProcessingStatus.Done)
|
||||||
|
deletionReason = $"invalid status ({meta.status})";
|
||||||
|
else if (meta.uploadDateTime < expirationDate)
|
||||||
|
deletionReason = "expired";
|
||||||
|
else if(!meta.AssociatedFilesExist())
|
||||||
|
deletionReason = "files not found";
|
||||||
|
else continue;
|
||||||
|
|
||||||
deleteCount++;
|
deleteCount++;
|
||||||
await DeleteMetadata(meta);
|
await DeleteMetadata(meta, deletionReason);
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.LogInfo($"Deleted {deleteCount} invalid records");
|
_logger.LogInfo($"Deleted {deleteCount} invalid records");
|
||||||
@ -97,7 +98,7 @@ public class DatabaseConnector
|
|||||||
File.Delete(file);
|
File.Delete(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteAssociatedFiles(SaveFileMetadata meta)
|
private void TryDeleteAssociatedFiles(SaveFileMetadata meta)
|
||||||
{
|
{
|
||||||
TryDeleteFile(meta.GetSaveFilePath());
|
TryDeleteFile(meta.GetSaveFilePath());
|
||||||
TryDeleteFile(meta.GetParsedDataPath());
|
TryDeleteFile(meta.GetParsedDataPath());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user