/// <summary> Gets report options. </summary> /// <typeparam name="T"> Generic type parameter. </typeparam> /// <param name="request"> The request. </param> /// <param name="getHeadersMetadata"> The get headers metadata. </param> /// <param name="getOptions"> Options for controlling the get. </param> /// <returns> The report options. </returns> protected List <ReportOptions <T> > GetReportOptions <T>(IReportsHeader request, Func <List <HeaderMetadata> > getHeadersMetadata, Func <HeaderMetadata, ReportOptions <T> > getOptions) { List <HeaderMetadata> headersMetadata = getHeadersMetadata(); List <ReportOptions <T> > options = new List <ReportOptions <T> >(); ReportDisplayType displayType = ReportHelper.GetReportDisplayType(request.DisplayType); foreach (HeaderMetadata header in headersMetadata) { ReportOptions <T> headerOptions = getOptions(header); if (this.DisplayTypeVisible(headerOptions.Header.DisplayType, displayType)) { options.Add(headerOptions); } } if (request != null && !string.IsNullOrEmpty(request.ReportColumns)) { List <HeaderMetadata> headersMetadataFiltered = ReportHelper.GetFilteredReportHeaderMetadata(request.ReportColumns, () => headersMetadata); foreach (ReportHeader header in options.Select(x => x.Header)) { if (this.DisplayTypeVisible(header.DisplayType, displayType)) { if (!headersMetadataFiltered.Contains(header.FieldName) && displayType != ReportDisplayType.Export) { header.DisplayType = ReportDisplayType.None; } } else { header.DisplayType = ReportDisplayType.None; } } } return(options); }
/// <summary> Gets the headers. </summary> /// <typeparam name="T"> Generic type parameter. </typeparam> /// <param name="request"> The request. </param> /// <param name="getHeadersMetadata"> The get headers metadata. </param> /// <param name="getOptions"> Options for controlling the get. </param> /// <returns> The headers. </returns> protected List <ReportHeader> GetHeaders <T>(IReportsHeader request, Func <List <HeaderMetadata> > getHeadersMetadata, Func <HeaderMetadata, ReportOptions <T> > getOptions) { List <ReportOptions <T> > options = this.GetReportOptions(request, getHeadersMetadata, getOptions); return(this.GetHeaders(options)); }