public void Execute(TextWriter outputStream, TextWriter logStream, GqlEngineState gqlEngineState) { string fileName = fileOptions.FileName.EvaluateAsData (null).ToDataString (cultureInfo); gqlEngineState.CurrentDirectory = Path.Combine (gqlEngineState.CurrentDirectory, fileName); if (logStream != null) logStream.WriteLine ("Current directory changed to '{0}'", gqlEngineState.CurrentDirectory); }
public void Execute(TextWriter outputStream, TextWriter logStream, GqlEngineState gqlEngineState) { GqlQueryState gqlQueryState = new GqlQueryState (gqlEngineState); IntoProvider.DumpProviderToStream (gqlQuery, outputStream, gqlQueryState, gqlEngineState.ColumnDelimiter, gqlEngineState.Heading, gqlEngineState.AutoSize, FileOptionsIntoClause.FormatEnum.DontCare, cultureInfo); }
public GqlQueryState(GqlEngineState other) : this() { this.CurrentDirectory = other.CurrentDirectory; this.TempDirectory = other.TempDirectory; this.CurrentExecutionState = other.ExecutionState; this.Variables = other.Variables; this.Warnings = other.Warnings; }
public void Execute(TextWriter outputStream, TextWriter logStream, GqlEngineState gqlEngineState) { string fileName = this.fileOptions.FileName.EvaluateAsData (null).ToDataString (cultureInfo); if (fileName.StartsWith ("#")) { fileName = Path.Combine (gqlEngineState.TempDirectory, fileName); } else { fileName = Path.Combine (gqlEngineState.CurrentDirectory, fileName); } File.Delete (fileName); }
public GqlEngine() { CultureInfo = CultureInfo.InvariantCulture; CaseInsensitive = true; GqlEngineState = new GqlEngineState (gqlEngineExecutionState); GqlEngineState.CurrentDirectory = Environment.CurrentDirectory; GqlEngineState.TempDirectory = Path.Combine (Path.GetTempPath (), "FxGql-" + Guid.NewGuid ().ToString ()); Initialize (); GqlEngineState.CurrentDirectoryChanged += delegate() { ReopenLogFile (); }; }
public static void DumpProviderToStream(IProvider provider, Stream outputStream, GqlQueryState gqlQueryState, string columnDelimiter, string recordDelimiter, GqlEngineState.HeadingEnum heading, FileOptionsIntoClause.FormatEnum format, CultureInfo cultureInfo) { using (TextWriter writer = new StreamWriter (outputStream, System.Text.Encoding.GetEncoding (0))) { writer.NewLine = recordDelimiter; DumpProviderToStream ( provider, writer, gqlQueryState, columnDelimiter, heading, 0, format, cultureInfo ); } }
public void Execute(TextWriter outputStream, TextWriter logStream, GqlEngineState gqlEngineState) { }
public void Execute(TextWriter outputStream, TextWriter logStream, GqlEngineState gqlEngineState) { if (!gqlEngineState.Views.Remove (name)) throw new InvalidOperationException (string.Format ("View {0} doesn't exist.", name)); }
public ColumnProviderTitleLine(IProvider provider, GqlEngineState.HeadingEnum heading) { this.provider = provider; this.heading = heading; }
public static void DumpProviderToStream(IProvider provider, TextWriter outputWriter, GqlQueryState gqlQueryState, string columnDelimiter, GqlEngineState.HeadingEnum heading, int autoSize, FileOptionsIntoClause.FormatEnum format, CultureInfo cultureInfo) { try { provider.Initialize (gqlQueryState); List<string[]> list = new List<string[]> (); if (heading != GqlEngineState.HeadingEnum.Off) { ColumnName[] columnTitles = provider.GetColumnNames (); if (columnTitles.Length > 0) { string[] columnTitleStrings = columnTitles.Select (p => p.ToStringWithoutBrackets ()).ToArray (); list.Add (columnTitleStrings); if (heading == GqlEngineState.HeadingEnum.OnWithRule) { string[] columnTitlesRule = new string[columnTitles.Length]; for (int i = 0; i < columnTitles.Length; i++) columnTitlesRule [i] = new string ('=', columnTitleStrings [i].ToString ().Length); list.Add (columnTitlesRule); } } } for (int record = 0; (autoSize == -1 || record < autoSize); record++) { try { if (!provider.GetNextRecord ()) break; } catch (WarningException x) { gqlQueryState.Warnings.Add (new LineIgnoredException (x)); record--; continue; } list.Add (provider.Record.Columns.Select (p => p.ToString ()).ToArray ()); } FormatColumnsFunction formatColumnListFunction; if (autoSize == 0) { if (format == FileOptionsIntoClause.FormatEnum.Csv) formatColumnListFunction = new FormatCsvFunction (columnDelimiter); else formatColumnListFunction = new FormatColumnListFunction (columnDelimiter); } else { int[] max = new int[list [0].Length]; foreach (string[] item in list) { for (int col = 0; col < max.Length; col++) max [col] = Math.Max (item [col].Length, max [col]); } Type[] types = provider.GetColumnTypes (); for (int col = 0; col < max.Length; col++) if (types [col] != typeof(DataString)) max [col] = -max [col]; formatColumnListFunction = new FormatColumnListFunction (columnDelimiter, max); } foreach (var item in list) { outputWriter.WriteLine (formatColumnListFunction.Evaluate (item)); } do { try { if (!provider.GetNextRecord ()) break; outputWriter.WriteLine (formatColumnListFunction.Evaluate (provider.Record.Columns.Select (p => p.ToDataString (cultureInfo).Value))); } catch (WarningException x) { gqlQueryState.Warnings.Add (new LineIgnoredException (x)); } } while (true); } finally { provider.Uninitialize (); } }
public void Execute(TextWriter outputStream, TextWriter logStream, GqlEngineState gqlEngineState) { gqlEngineState.Views.Add (name, viewDefinition); }