예제 #1
0
        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());
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
 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;
 }