private HorizontalReportSchemaBuilder <TEntity> BuildHorizontalReport <TEntity, TBuildParameter>(
            HorizontalReportAttribute reportAttribute, TBuildParameter parameter)
        {
            HorizontalReportSchemaBuilder <TEntity> builder = this.BuildHorizontalReportNoPostBuild <TEntity>();

            if (reportAttribute?.PostBuilder == null)
            {
                throw new InvalidOperationException($"Type {typeof(TEntity)} does not have post-builder.");
            }

            if (!typeof(IHorizontalReportPostBuilder <TEntity, TBuildParameter>).IsAssignableFrom(reportAttribute.PostBuilder))
            {
                throw new InvalidOperationException($"Type {reportAttribute.PostBuilder} is not assignable to {typeof(IHorizontalReportPostBuilder<TEntity, TBuildParameter>)}.");
            }

            ((IHorizontalReportPostBuilder <TEntity, TBuildParameter>)ActivatorUtilities.GetServiceOrCreateInstance(this.serviceProvider, reportAttribute.PostBuilder))
            .Build(builder, parameter);

            return(builder);
        }
        private HorizontalReportSchemaBuilder <TEntity> BuildHorizontalReport <TEntity>(HorizontalReportAttribute reportAttribute)
        {
            HorizontalReportSchemaBuilder <TEntity> builder = this.BuildHorizontalReportNoPostBuild <TEntity>();

            if (reportAttribute?.PostBuilder != null &&
                typeof(IHorizontalReportPostBuilder <TEntity>).IsAssignableFrom(reportAttribute.PostBuilder))
            {
                ((IHorizontalReportPostBuilder <TEntity>)ActivatorUtilities.GetServiceOrCreateInstance(this.serviceProvider, reportAttribute.PostBuilder))
                .Build(builder);
            }

            return(builder);
        }