public void Enqueue(IStep step) { if (!IsRunning) { QueueToBeDone.Enqueue(step); } Loggmanager.Log("=========Step Enqueue has been added"); }
//Core methods #region Main private IStepLog Start() { try { IStepLog logM = new LogMessage() { IsSuccess = true, Message = $"Transaction finished with success" }; IsRunning = true; int a = 0; while (QueueToBeDone.Count != 0) { if (a == 8) { throw new Exception(); } if (cts.IsCancellationRequested) { QueueToBeDone.Clear(); throw new Exception($"Transaction cancelled by user"); } // var item = QueueToBeDone.Dequeue(); var backuped = item.Backup(); if (!backuped.IsSuccess) { logM = backuped; break; } var done = item.Do(); if (!done.IsSuccess) { logM = done; break; } QueueDone.Enqueue(item); } IsRunning = false; // return(logM); } catch (Exception ex) { IStepLog logM = new LogMessage() { IsSuccess = false, Message = $"{ex.Message}" }; return(logM); } }