Convert QueueItem to record

There is no special logic and the temporary file location could be
removed from QueueItem.
This commit is contained in:
Fabian Neundorf 2023-06-13 21:27:35 +02:00
parent 758e1f2e01
commit 846794b170

View File

@ -31,12 +31,12 @@ public class DownloadController
public void QueueFile(DownloadInfo downloadInfo, Action<string> fileCallback) public void QueueFile(DownloadInfo downloadInfo, Action<string> fileCallback)
{ {
_filesToDownload.Add(new QueueItem { DownloadInfo = downloadInfo, FileCallback = fileCallback }); _filesToDownload.Add(new QueueItem(downloadInfo, fileCallback));
} }
public void QueueFile(IExternalComponent component) public void QueueFile(IExternalComponent component)
{ {
_filesToDownload.Add(new QueueItem { DownloadInfo = component.DownloadInfo, FileCallback = component.Install }); _filesToDownload.Add(new QueueItem(component.DownloadInfo, component.Install));
} }
public void Stop() public void Stop()
@ -136,9 +136,9 @@ public class DownloadController
return false; return false;
} }
fileToDownload.TempFolder = Path.Combine(_scanningContext.TempFolderPath, Path.GetRandomFileName()); string tempFolder = Path.Combine(_scanningContext.TempFolderPath, Path.GetRandomFileName());
Directory.CreateDirectory(fileToDownload.TempFolder); Directory.CreateDirectory(tempFolder);
string p = Path.Combine(fileToDownload.TempFolder, fileToDownload.DownloadInfo.FileName); string p = Path.Combine(tempFolder, fileToDownload.DownloadInfo.FileName);
try try
{ {
result.Position = 0; result.Position = 0;
@ -151,7 +151,7 @@ public class DownloadController
DownloadError?.Invoke(this, EventArgs.Empty); DownloadError?.Invoke(this, EventArgs.Empty);
} }
FilesDownloaded++; FilesDownloaded++;
Directory.Delete(fileToDownload.TempFolder, true); Directory.Delete(tempFolder, true);
} }
DownloadComplete?.Invoke(this, EventArgs.Empty); DownloadComplete?.Invoke(this, EventArgs.Empty);
@ -166,14 +166,7 @@ public class DownloadController
return str; return str;
} }
private class QueueItem private record QueueItem(DownloadInfo DownloadInfo, Action<string> FileCallback);
{
public required DownloadInfo DownloadInfo { get; set; }
public string? TempFolder { get; set; }
public required Action<string> FileCallback { get; set; }
}
public async Task<bool> StartDownloadsAsync() public async Task<bool> StartDownloadsAsync()
{ {