Esempio n. 1
0
        public pMixinPartialCodeGeneratorResponse GeneratePartialCode(ICodeGeneratorContext codeGeneratorContext)
        {
            var stopwatch = Stopwatch.StartNew();

            try
            {
                _log.InfoFormat("GeneratePartialCode Begin [{0}]", codeGeneratorContext.Source.FileName);

                var logManager = new Log4NetInMemoryStreamAppenderManager();

                var pipelineState = new CreateCodeGenerationPipelineState(codeGeneratorContext);

                new pMixinPartialCodeGeneratorPipeline().PerformTask(pipelineState);

                return(new pMixinPartialCodeGeneratorResponse
                {
                    CodeGeneratorExecutionTime = stopwatch.Elapsed,
                    CreateCodeGeneratorPipelineState = pipelineState,
                    CodeGeneratorContext = codeGeneratorContext,
                    Errors = pipelineState.CodeGenerationErrors,
                    GeneratedCodeSyntaxTree = pipelineState.CodeBehindSyntaxTree,
                    LogMessages = logManager.GetRenderedLoggingEvents(LoggingVerbosity.All)
                });
            }
            catch (Exception e)
            {
                _log.Error(string.Format("Unhandled exception generating [{0}]: {1}",
                                         codeGeneratorContext.Source.FileName, e.Message), e);

                throw;
            }
            finally
            {
                _log.InfoFormat("GeneratePartialCode Complete [{0}] in [{1}] ms",
                                codeGeneratorContext.Source.FileName,
                                stopwatch.ElapsedMilliseconds);
            }
        }
 public void Rendered_Log_Message_Should_Start_With_Comment()
 {
     _log4NetInMemoryStreamAppenderManager.GetRenderedLoggingEvents(LoggingVerbosity.All).First()
     .ShouldStartWith("//");
 }