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; } }
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; } }