Beispiel #1
0
        internal LocalUtilityReportingService(IReportingBinary binary, string cwd = null, Configuration configuration = null)
        {
            _tempPath = Path.Combine(configuration.TempDirectory ?? Path.Combine(Path.GetTempPath(), "jsreport"), "autocleanup");
            Directory.CreateDirectory(_tempPath);

            _binaryProcess = new BinaryProcess(binary, cwd, configuration);

            AppDomain.CurrentDomain.DomainUnload += DomainUnloadOrProcessExit;
            AppDomain.CurrentDomain.ProcessExit  += DomainUnloadOrProcessExit;
        }
        internal LocalUtilityReportingService(IReportingBinary binary, Configuration configuration, bool keepAlive, string cwd = null, IContractResolver dataContractResolver = null)
        {
            _dataContractResolver = dataContractResolver;
            _keepAlive            = keepAlive;
            _tempPath             = Path.Combine(configuration.TempDirectory, "autocleanup");
            Directory.CreateDirectory(_tempPath);

            _binaryProcess = new BinaryProcess(binary, configuration, cwd);

            AppDomain.CurrentDomain.DomainUnload += DomainUnloadOrProcessExit;
            AppDomain.CurrentDomain.ProcessExit  += DomainUnloadOrProcessExit;
        }
        internal LocalWebServerReportingService(IReportingBinary binary, string cwd = null, Configuration configuration = null)
        {
            _binaryProcess = new BinaryProcess(binary, cwd, configuration);

            _binaryProcess.Configuration.HttpPort = _binaryProcess.Configuration.HttpPort ?? 5488;
            LocalServerUri    = "http://localhost:" + _binaryProcess.Configuration.HttpPort;
            _reportingService = new ReportingService(LocalServerUri, _binaryProcess?.Configuration?.Authentication?.Admin?.Username,
                                                     _binaryProcess?.Configuration?.Authentication?.Admin?.Password);
            StartTimeout = new TimeSpan(0, 0, 0, 20);
            StopTimeout  = new TimeSpan(0, 0, 0, 3);
            _binaryProcess.OutputDataReceived += (s, e) => {
                _startOutputLogs += e.Data;
                OutputDataReceived?.Invoke(s, e);
            };
            _binaryProcess.ErrorDataReceived += (s, e) => {
                _startErrorLogs += e.Data;
                OutputDataReceived?.Invoke(s, e);
            };

            AppDomain.CurrentDomain.DomainUnload += DomainUnloadOrProcessExit;
            AppDomain.CurrentDomain.ProcessExit  += DomainUnloadOrProcessExit;
        }