mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-06 23:43:07 +00:00
47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using AutoClient.Modes.FolderStore;
|
|
|
|
namespace AutoClient.Modes
|
|
{
|
|
public class FolderStoreMode : IMode
|
|
{
|
|
private readonly App app;
|
|
private readonly string folder;
|
|
private readonly PurchaseInfo purchaseInfo;
|
|
private readonly CancellationTokenSource cts = new CancellationTokenSource();
|
|
private Task checkTask = Task.CompletedTask;
|
|
|
|
public FolderStoreMode(App app, string folder, PurchaseInfo purchaseInfo)
|
|
{
|
|
this.app = app;
|
|
this.folder = folder;
|
|
this.purchaseInfo = purchaseInfo;
|
|
}
|
|
|
|
public void Start(CodexWrapper instance, int index)
|
|
{
|
|
checkTask = Task.Run(() =>
|
|
{
|
|
try
|
|
{
|
|
var saver = new FolderSaver(app, instance);
|
|
while (!cts.IsCancellationRequested)
|
|
{
|
|
saver.Run(cts);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
app.Log.Error("Exception in FolderStoreMode: " + ex);
|
|
Environment.Exit(1);
|
|
}
|
|
});
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
cts.Cancel();
|
|
checkTask.Wait();
|
|
}
|
|
}
|
|
}
|