public void SetDocuments(IReadOnlyList <MutationDocument> documents, UnimaConfig config)
 {
     _config = config;
     RunningDocuments.AddRange(documents.Select(d => new TestRunDocument {
         Document = d, Status = TestRunDocument.TestRunStatusEnum.Waiting
     }));
     MutationCount         = documents.Count;
     MutationsInQueueCount = MutationCount;
 }
        private void MutationDocumentStarted(MutationDocument mutationDocument)
        {
            var testRunDocument = RunningDocuments.FirstOrDefault(r => r.Document == mutationDocument);

            if (testRunDocument != null)
            {
                MutationsInQueueCount--;
                testRunDocument.Status = TestRunDocument.TestRunStatusEnum.Running;
            }
        }
 private async void ExecuteMutationDocuments()
 {
     TestNotStarted = false;
     await _mediator.Send(
         new ExecuteMutationsCommand(
             _config,
             RunningDocuments.Select(r => r.Document).ToList(),
             MutationDocumentStarted,
             MutationDocumentCompleted));
 }
        private void MutationDocumentCompleted(MutationDocumentResult result)
        {
            lock (RunningDocuments)
            {
                var runDocument = RunningDocuments.FirstOrDefault(r => r.Document.Id == result.Id);

                if (runDocument != null)
                {
                    System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => RunningDocuments.Remove(runDocument)));
                }

                MutationDocumentsExecutionResults.AddResult(result);
            }
        }