public override void ExecuteCommand(CancellationToken token) { var selectedText = ShellManager.GetSelectedText(); var sb = new StringBuilder(); int errorCount = 0; var dataReaderCallback = new Action <SqlDataReader>((reader) => { var base64String = reader.GetString(0); // correct base64 strings are of multiples of 4. This is a simple sanity check. if (base64String.Length % 4 == 0) { sb.AppendLine(GZipManager.DecompressBase64EncodedString(base64String)); } else { errorCount++; } }); QueryManager.Run(ConnectionManager.GetConnectionStringForCurrentWindow(), token, (queryManager) => { queryManager.ExecuteQuery(selectedText, dataReaderCallback); }); if (errorCount > 0) { ShellManager.ShowMessageBox("Processed results with some errors, some of the rows contain non-64base strings. The successfull results will be displayed."); } NotepadHelper.ShowInNotepad(sb.ToString()); }
/// <summary> /// 将DataTable写入 /// </summary> /// <param name="dt"></param> /// <param name="url"></param> private void WriteDataFile(DataTable dt, string url) { string content = StringManager.DataTable2String(dt); var bs = GZipManager.WriteGzip(content); File.WriteAllBytes(url, bs); }
public void Init() { _sourceReaderMock = new Mock <ISourceReader>(); _chunkWriterMock = new Mock <IChunkWriter>(); _splitterFactoryMok = new Mock <IFileSplitterFactory>(); _compressorFactoryMock = new Mock <ICompressorFactory>(); _taskFactoryMock = new Mock <ITaskFactory>(); _errorLogsMock = new Mock <IErrorLogs>(); _gZipManager = new GZipManager(It.IsAny <string>(), _sourceReaderMock.Object, _chunkWriterMock.Object, _splitterFactoryMok.Object, _compressorFactoryMock.Object, _taskFactoryMock.Object, _errorLogsMock.Object); _chunksReaderMock = new Mock <IChunksReader>(); _writerTaskMock = new Mock <IWriterTask>(); _fileSplitterMock = new Mock <IFileSplitter>(); _exceptions = null; }