コード例 #1
0
        void IResultWriter.AfterCloseReader(int affectedRows)
        {
            var duration      = Stopwatch.GetTimestamp() - _beforeExecuteReaderTimestamp;
            var header        = StopwatchTimeSpan.ToString(duration, 3);
            var stringBuilder = new StringBuilder();

            stringBuilder.Append($"Command[{_commandCount - 1}] completed.");
            if (affectedRows >= 0)
            {
                stringBuilder.Append($" {affectedRows} row(s) affected.");
            }
            var message = stringBuilder.ToString();

            _addInfoMessage(InfoMessageFactory.Create(InfoMessageSeverity.Verbose, header, message));

            if (_query != null)
            {
                var directory = _fileName != null?Path.GetDirectoryName(_fileName) : Path.GetTempPath();

                var results = _query.Results.EmptyIfNull().Zip(_results, ToResult).ToReadOnlyList();
                var query   = new DbRequest(directory, _query.Name, _query.Using, _query.Namespace, _commandText, 0, _parameters, results);

                var queryBuilder     = new DbRequestBuilder(query);
                var csharpSourceCode = queryBuilder.Build();

                var path = Path.Combine(query.Directory, $"{query.Name}.generated.cs");
                File.WriteAllText(path, csharpSourceCode, Encoding.UTF8);

                _query       = null;
                _parameters  = null;
                _commandText = null;
                _results     = null;
            }
        }
コード例 #2
0
        void IResultWriter.AfterCloseReader(int affectedRows)
        {
            var duration = Stopwatch.GetTimestamp() - _beforeExecuteReaderTimestamp;
            var now      = LocalTime.Default.Now;
            var affected = affectedRows >= 0
                ? $"{affectedRows} row(s) affected."
                : null;
            var message = $"Command[{_commandCount - 1}] completed in {StopwatchTimeSpan.ToString(duration, 3)} seconds. {affected}";

            _addInfoMessage(new InfoMessage(now, InfoMessageSeverity.Verbose, null, message));

            if (_query != null)
            {
                var directory = _fileName != null?Path.GetDirectoryName(_fileName) : Path.GetTempPath();

                var results = _query.Results.EmptyIfNull().Zip(_results, ToResult).ToReadOnlyCollection();
                var query   = new DbRequest(directory, _query.Name, _query.Using, _query.Namespace, _commandText, 0, _parameters, results);

                var queryBuilder     = new DbRequestBuilder(query);
                var csharpSourceCode = queryBuilder.Build();

                var path = Path.Combine(query.Directory, $"{query.Name}.generated.cs");
                File.WriteAllText(path, csharpSourceCode, Encoding.UTF8);

                _query       = null;
                _parameters  = null;
                _commandText = null;
                _results     = null;
            }
        }