Пример #1
0
		/// <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);