Esempio n. 1
0
        public async Task SaveExecutionResult(StatementExecutionBatchResult executionResult)
        {
            IsWaitingForResult = false;
            IsExecuting        = true;

            _exportClockTimer.Start();
            _exportResultInfoCollection.Clear();

            var commandNumber = 0;

            foreach (var statementResult in executionResult.StatementResults)
            {
                commandNumber++;

                var resultNumber = 0;
                foreach (var kvp in statementResult.ResultInfoColumnHeaders)
                {
                    resultNumber++;
                    var exportResultInfo = new ExportResultInfo(commandNumber, resultNumber, kvp.Key, kvp.Value);
                    _exportResultInfoCollection.Add(exportResultInfo);
                }
            }

            var exception = await App.SafeActionAsync(() => _outputViewer.ExecuteUsingCancellationToken(ExportRows));

            _exportClockTimer.Stop();

            IsExecuting = false;

            if (exception != null)
            {
                TraceLog.WriteLine($"Saving result to file failed: {exception}");

                CancelWaitingResults();

                Messages.ShowError(exception.Message);
            }
        }