Ejemplo n.º 1
0
        /// <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++;
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        /// <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;
        }
Ejemplo n.º 5
0
        /// <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)
            );
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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();
        }