/// <summary> /// Executes this tag. /// </summary> /// <param name="context">The <see cref="IMansionContext"/>.</param> /// <param name="outputPipe">The <see cref="CsvOutputPipe"/> to which to write.</param> protected override void DoExecute(IMansionContext context, CsvOutputPipe outputPipe) { // get the attributes var values = GetRequiredAttribute<string>(context, "values"); // write the row outputPipe.Write(values.Split(new[] {','})); }
/// <summary> /// Executes this tag. /// </summary> /// <param name="context">The <see cref="IMansionContext"/>.</param> /// <param name="outputPipe">The <see cref="CsvOutputPipe"/> to which to write.</param> protected override void DoExecute(IMansionContext context, CsvOutputPipe outputPipe) { // get the attributes var dataspace = GetRequiredAttribute<IPropertyBag>(context, "source"); // write the row outputPipe.Write(context, dataspace); }
/// <summary> /// </summary> /// <param name="context"></param> protected override void DoExecute(IMansionContext context) { // check if a default format is used or a custom one is specified var formatName = GetAttribute<string>(context, "format"); CsvOutputFormat format; if (!string.IsNullOrEmpty(formatName)) { // get the format format = CsvOutputFormat.GetFormat(formatName); } else { // create a custom format format = new CsvOutputFormat { ColumnDelimitor = GetAttribute<string>(context, "columnDelimitor"), ColumnProperties = GetAttribute<string>(context, "columnProperties").Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries), ColumnHeaders = GetAttribute(context, "columnHeaders", GetAttribute<string>(context, "columnProperties")).Split(new[] {','}), DocumentEndDelimitor = GetAttribute<string>(context, "documentEndDelimitor"), DocumentStartDelimitor = GetAttribute<string>(context, "documentStartDelimitor"), IncludeColumnHeaders = GetAttribute<bool>(context, "includeColumnHeaders"), RowDelimitor = GetAttribute<string>(context, "rowDelimitor"), TextQualifier = GetAttribute<string>(context, "textQualifier") }; } // check if the format is sane if (format.ColumnProperties.Length != format.ColumnHeaders.Length) throw new InvalidOperationException("Unbalanced header with properties"); // create the XML pipe and push it to the stack using (var pipe = new CsvOutputPipe(context.OutputPipe, format)) using (context.OutputPipeStack.Push(pipe)) { // execute the children ExecuteChildTags(context); } }
/// <summary> /// Executes this tag. /// </summary> /// <param name="context">The <see cref="IMansionContext"/>.</param> /// <param name="outputPipe">The <see cref="CsvOutputPipe"/> to which to write.</param> protected abstract void DoExecute(IMansionContext context, CsvOutputPipe outputPipe);