public string GetDescription(DataSchema dataSchema) { var parts = new List <string>(); if (RowHeaders.Any()) { parts.Add(Resources.PivotSpec_GetDescription_Row_Headers_); parts.AddRange(RowHeaders.Select(header => header.Caption ?? header.SourceColumn.ToString())); } if (ColumnHeaders.Any()) { if (parts.Any()) { parts.Add(string.Empty); } parts.Add(Resources.PivotSpec_GetDescription_Column_Headers_); parts.AddRange(ColumnHeaders.Select(header => header.Caption ?? header.SourceColumn.ToString())); } if (Values.Any()) { if (parts.Any()) { parts.Add(string.Empty); } parts.Add(Resources.PivotSpec_GetDescription_Values_); parts.AddRange(Values.Select(value => (ColumnCaption.ExplicitCaption(value.Caption) ?? value.AggregateOperation.QualifyColumnCaption(value.SourceColumn.ToColumnCaption())) .GetCaption(dataSchema.DataSchemaLocalizer))); } return(string.Join(Environment.NewLine, parts)); }