/// <summary> /// Creates the csv header /// </summary> /// <param name="page">The page configuration</param> /// <param name="allColumns">signal if all exportable columns will be included in the csv</param> /// <param name="separator">The list separator</param> /// <returns>The csv header</returns> protected virtual string CreateHeader(Page page, bool allColumns, string separator) { StringBuilder response = new StringBuilder(); if (allColumns) { IList <PageField> fields = GetExportableFields(page); foreach (PageField field in fields) { string fieldName = field.FieldName; if (!string.IsNullOrEmpty(field.DropDownInfo) && !string.IsNullOrEmpty(field.JoinInfo)) { Entity joinInfo = EntityUtils.GetJoinInfoEntity(field); string[] joinFields = joinInfo.GetProperty("JoinFields").Split(','); foreach (string alias in joinFields) { response.Append("\"").Append(EntityUtils.GetAliasName(alias).Replace("\"", "\"\"")).Append("\"").Append(separator); } } else { response.Append("\"").Append(field.Label.Replace("\"", "\"\"")).Append("\"").Append(separator); } } } else { foreach (PageGridColumn col in page.GridFields) { response.Append("\"").Append(col.ColumnLabel).Append("\"").Append(separator); } } response.Remove(response.Length - separator.Length, separator.Length); response.Append(System.Environment.NewLine); return(response.ToString()); }