コード例 #1
0
ファイル: AbstractJob.cs プロジェクト: zsy960/PDFCreator
        protected TokenReplacer GetTokenReplacer()
        {
            var tokenReplacerFactory = new TokenReplacerFactory();
            var tokenReplacer        = tokenReplacerFactory.BuildTokenReplacerWithoutOutputfiles(this);

            return(tokenReplacer);
        }
コード例 #2
0
        public void SetUp()
        {
            _jobInfo = new JobInfo();

            var sourceFileInfo = new SourceFileInfo();

            sourceFileInfo.ClientComputer = "someComputer";
            sourceFileInfo.JobCounter     = 3;
            sourceFileInfo.JobId          = 14;
            sourceFileInfo.PrinterName    = "SomePrinter";
            sourceFileInfo.SessionId      = 121;
            _jobInfo.SourceFiles.Add(sourceFileInfo);

            var metadata = new Metadata();

            metadata.PrintJobAuthor = "someAuthor";
            metadata.PrintJobName   = "somePrintJobName";
            metadata.Author         = "someAuthor";
            metadata.Title          = "someTitle";
            _jobInfo.Metadata       = metadata;

            _tokenReplacerFactory = new TokenReplacerFactory();

            _fileUtil = new MockFileUtil();
            _fileUtil.SetInstanceToMock();

            _environment = MockRepository.GenerateStub <IEnvironment>();
            _environment.Stub(e => e.UserName).Return("someUser");
            _environment.Stub(e => e.MachineName).Return("someMachine");

            var dateTime = MockRepository.GenerateStub <IDateTime>();

            dateTime.Stub(dt => dt.Now).Return(new DateTimeWrap(2000, 1, 1, 1, 1, 1));

            _job = MockRepository.GenerateStub <IJob>();
            _job.Stub(j => j.JobInfo).Return(_jobInfo);
            _job.Stub(j => j.NumberOfCopies).Return(5);
            _job.Stub(j => j.NumberOfPages).Return(14);

            _job.OutputFiles = new List <string>()
            {
                "outputFile", "test"
            };

            var path = MockRepository.GenerateStub <IPath>();

            path.Stub(p => p.GetFullPath("outputFile")).Return("fullPath");
            path.Stub(p => p.GetFileNameWithoutExtension("C:\\thedir\\thefile.txt")).Return("thefile");
            path.Stub(p => p.GetDirectoryName("C:\\thedir\\thefile.txt")).Return("C:\\thedir");
            path.Stub(p => p.GetFileName("")).IgnoreArguments().Return("file");

            _tokenReplacerFactory = new TokenReplacerFactory(dateTime, _environment, path);
        }
コード例 #3
0
        public void SetUp()
        {
            _jobInfo = new JobInfo();

            var sourceFileInfo = new SourceFileInfo();

            sourceFileInfo.ClientComputer = "someComputer";
            sourceFileInfo.JobCounter     = 3;
            sourceFileInfo.JobId          = 14;
            sourceFileInfo.PrinterName    = "SomePrinter";
            sourceFileInfo.SessionId      = 121;
            _jobInfo.SourceFiles.Add(sourceFileInfo);

            var metadata = new Metadata();

            metadata.PrintJobAuthor = "someAuthor";
            metadata.PrintJobName   = "somePrintJobName";
            metadata.Author         = "someAuthor";
            metadata.Title          = "someTitle";
            metadata.Subject        = "someSubject";
            metadata.Keywords       = "SomeKeyword";
            _jobInfo.Metadata       = metadata;

            _tokenReplacerFactory = new TokenReplacerFactory(new DateTimeProvider(), new EnvironmentWrap(), new PathWrap(), new PathUtil(new PathWrap(), new DirectoryWrap()));

            _pathUtil = Substitute.For <IPathUtil>();

            _environment = MockRepository.GenerateStub <IEnvironment>();
            _environment.Stub(e => e.UserName).Return("someUser");
            _environment.Stub(e => e.MachineName).Return("someMachine");

            var dateTime = MockRepository.GenerateStub <IDateTimeProvider>();

            dateTime.Stub(dt => dt.Now()).Return(new DateTime(2000, 1, 1, 1, 1, 1));

            _job = new Job(_jobInfo, new ConversionProfile(), new JobTranslations(), new Accounts());
            _job.NumberOfCopies = 5;
            _job.NumberOfPages  = 14;

            _job.OutputFiles = new List <string> {
                "outputFile", "test"
            };

            var path = MockRepository.GenerateStub <IPath>();

            path.Stub(p => p.GetFullPath("outputFile")).Return("fullPath");
            path.Stub(p => p.GetFileNameWithoutExtension("C:\\thedir\\thefile.txt")).Return("thefile");
            path.Stub(p => p.GetDirectoryName("C:\\thedir\\thefile.txt")).Return("C:\\thedir");
            path.Stub(p => p.GetFileName("")).IgnoreArguments().Return("file");

            _tokenReplacerFactory = new TokenReplacerFactory(dateTime, _environment, path, _pathUtil);
        }
コード例 #4
0
ファイル: AbstractJob.cs プロジェクト: zsy960/PDFCreator
        /// <summary>
        ///     Runs the job and all actions
        /// </summary>
        public JobState RunJob()
        {
            Logger.Trace("Starting job");

            var calledJobCompleted = false;

            try
            {
                JobState = RunJobWork();

                if (JobState == JobState.Cancelled)
                {
                    Logger.Debug("Job cancelled by user");
                    return(JobState);
                }

                if (JobState == JobState.Failed)
                {
                    Logger.Error("Executing Ghostscript failed");
                    CallJobCompleted(false, JobError.Ghostscript);
                    calledJobCompleted = true;
                    return(JobState);
                }

                if (OutputFiles.Count == 0)
                {
                    JobState = JobState.Failed;
                    Logger.Error("No output files were created for unknown reason");
                    CallJobCompleted(false, JobError.Unknown);
                    calledJobCompleted = true;
                    return(JobState);
                }

                Logger.Trace("Created {0} output files.", OutputFiles.Count);
                int i = 1;
                foreach (var file in OutputFiles)
                {
                    Logger.Trace(i + ". Output file: {0}", file);
                    i++;
                }

                var factory = new TokenReplacerFactory();
                TokenReplacer = factory.BuildTokenReplacerWithOutputfiles(this);

                Logger.Trace("Starting Actions");

                CallActions();

                DoAutoCleanup();

                Logger.Trace("Job finished");
            }
            finally
            {
                if (!calledJobCompleted)
                {
                    Logger.Trace("Calling job completed event");
                    CallJobCompleted();
                }
            }

            return(JobState);
        }