using System.Collections.Concurrent;
static ImportFileInfo _inProgressRequest = null;
static readonly ConcurrentQueue<ImportFileInfo> WaitingRequests = new ConcurrentQueue<ImportFileInfo>();
public void UploadAndImport(ImportFileInfo request)
WaitingRequests.Enqueue(request);
WaitingRequests.TryPeek(out var next);
null != Interlocked.CompareExchange(ref _inProgressRequest, request, null))
Interlocked.Exchange(ref _inProgressRequest, null);
WaitingRequests.TryDequeue(out _);
public bool UploadAndImportIsComplete(Guid operationId) =>
WaitingRequests.All(x => x.OperationId != operationId);
private void UploadFile(ImportFileInfo request)
private void ImportFile(ImportFileInfo request)
public class ImportFileInfo