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); }