Unicoen.Model.UnifiedElement.WriteUnifiedElement C# (CSharp) Method

WriteUnifiedElement() private static method

private static WriteUnifiedElement ( UnifiedElement elem, StringBuilder buffer, int depth ) : void
elem UnifiedElement
buffer System.Text.StringBuilder
depth int
return void
		private static void WriteUnifiedElement(
				UnifiedElement elem, StringBuilder buffer, int depth) {
			WriteTypeWithoutContent(elem, buffer, depth);
			// write items of enumerable
			var seq = elem as IEnumerable;
			if (seq != null) {
				foreach (var item in seq) {
					ToStringRecursively(item, buffer, depth + 1);
				}
				Debug.Assert(
						elem.GetType().GetProperties()
								.Where(
										prop =>
										prop.Name.StartsWith("Unified")
										|| prop.Name.StartsWith("IUnified"))
								.Where(
										prop =>
										!IgnorePropertyNames.Contains(prop.Name))
								.Where(
										prop =>
										prop.GetIndexParameters().Length == 0)
								.Select(prop => prop.GetValue(elem, null)).Count
								() == 0);
				return;
			}

			// write properties without indexer
			var values = elem.GetType().GetProperties()
					.Where(prop => !IgnorePropertyNames.Contains(prop.Name))
					.Where(prop => prop.GetIndexParameters().Length == 0)
					.Select(prop => prop.GetValue(elem, null));
			foreach (var value in values) {
				ToStringRecursively(value, buffer, depth + 1);
			}
		}