/// <summary> /// Configures the registered report /// </summary> /// <param name="configuration">The report configuration</param> public void Configure ( RegisteredReportConfiguration configuration ) { Validate.IsNotNull(configuration); if (String.IsNullOrWhiteSpace(configuration.Name)) { throw new ArgumentException ( "The report name is required." ); } if (String.IsNullOrWhiteSpace(configuration.Title)) { throw new ArgumentException ( "The report title is required." ); } this.Name = configuration.Name; this.Title = configuration.Title; this.Description = configuration.Description; this.DateModified = DateTime.UtcNow; this.Version++; }
/// <summary> /// Registers a single report with a builder source /// </summary> /// <param name="configuration">The report configuration</param> /// <param name="builderType">The report builder type</param> public void RegisterReport ( RegisteredReportConfiguration configuration, Type builderType ) { Validate.IsNotNull(configuration); var name = configuration.Name; var registered = IsRegistered(name); if (registered) { throw new InvalidOperationException ( $"A report named '{name}' has already been registered." ); } var report = new RegisteredReport ( configuration, builderType ); _reportRepository.AddReport(report); _unitOfWork.SaveChanges(); }
/// <summary> /// Constructs the registered report with the script source code /// </summary> /// <param name="configuration">The report configuration</param> /// <param name="scriptSourceCode">The script source code</param> internal RegisteredReport ( RegisteredReportConfiguration configuration, string scriptSourceCode ) : this(configuration) { SpecifySource(scriptSourceCode); _constructing = false; }
/// <summary> /// Constructs the registered report with a builder /// </summary> /// <param name="configuration">The report configuration</param> /// <param name="builderType">The definition builder type</param> internal RegisteredReport ( RegisteredReportConfiguration configuration, Type builderType ) : this(configuration) { SpecifyBuilder(builderType); _constructing = false; }
/// <summary> /// Registers a single report with a builder source /// </summary> /// <typeparam name="TBuilder">The builder type</typeparam> /// <param name="configuration">The report configuration</param> public void RegisterReport <TBuilder> ( RegisteredReportConfiguration configuration ) where TBuilder : IReportDefinitionBuilder { RegisterReport ( configuration, typeof(TBuilder) ); }
/// <summary> /// Constructs the registered report with basic details /// </summary> /// <param name="configuration">The report configuration</param> protected RegisteredReport ( RegisteredReportConfiguration configuration ) { _constructing = true; this.Id = Guid.NewGuid(); this.DateCreated = DateTime.UtcNow; this.SourceRevisions = new Collection <RegisteredReportSourceRevision>(); Configure(configuration); }
/// <summary> /// Configures a registered report /// </summary> /// <param name="reportName">The report name</param> /// <param name="configuration">The report configuration</param> public void ConfigureReport ( string reportName, RegisteredReportConfiguration configuration ) { var report = _reportRepository.GetReport ( reportName ); report.Configure(configuration); _reportRepository.UpdateReport(report); _unitOfWork.SaveChanges(); }