public void Handle(GatheredResultSet resultSet)
        {
            // Find the full path to the template file,
            // using current directory if argument isn't fully qualified
            var templatePath = Path.Combine(Environment.CurrentDirectory, _pathToTemplateFile);
            if (!File.Exists(templatePath))
                throw new TemplateNotFoundException(templatePath);

            var templateName = Path.GetFileName(templatePath);
            var templateDirPath = Path.GetDirectoryName(templatePath);

            SparkViewEngine engine = GetSparkEngine(templateDirPath);

            try
            {
                // compile and instantiate the template
                string templateResult = ProcessViewTemplate(engine, templateName, resultSet);

                _fileWriter.Write(templateResult);
            }
            catch (Exception ex)
            {
                throw new SparkReportGenerationException("An exception occurred:" + ex.GetType().Name + "\r\n" +
                                                         ex.Message); //, ex);
            }
        }
        public void Handle(GatheredResultSet result)
        {
            if (string.IsNullOrEmpty(_pathToTemplateFile))
            {
                CreateReportWithDefaultTemplate(result);
                return;
            }

            var generator = new SparkReportGenerator<GatheredResultSetView>(_fileWriter, _pathToTemplateFile);
            generator.Handle(result);
        }
예제 #3
0
        public void Handle(GatheredResultSet result)
        {
            if (string.IsNullOrEmpty(_pathToTemplateFile))
            {
                CreateReportWithDefaultTemplate(result);
                return;
            }

            var generator = new SparkReportGenerator <GatheredResultSetView>(_fileWriter, _pathToTemplateFile);

            generator.Handle(result);
        }
 private void CreateReportWithDefaultTemplate(GatheredResultSet result)
 {
     var fileName = Path.GetTempFileName();
     var fs = new Filesystem();
     try
     {
         new ResourceWriter(fs).WriteResource("DefaultSparkTemplate.spark", fileName, true);
         var generator = new SparkReportGenerator<GatheredResultSetView>(_fileWriter, fileName);
         generator.Handle(result);
     }
     finally
     {
         fs.Delete(fileName);
     }
 }
예제 #5
0
        private void CreateReportWithDefaultTemplate(GatheredResultSet result)
        {
            var fileName = Path.GetTempFileName();
            var fs       = new Filesystem();

            try
            {
                new ResourceWriter(fs).WriteResource("DefaultSparkTemplate.spark", fileName, true);
                var generator = new SparkReportGenerator <GatheredResultSetView>(_fileWriter, fileName);
                generator.Handle(result);
            }
            finally
            {
                fs.Delete(fileName);
            }
        }
 public void Handle(GatheredResultSet result)
 {
     TestResult = result;
 }
 public void Handle(GatheredResultSet result)
 {
     var generator = new SparkReportGenerator<GatheredResultSetView>(_fileWriter, _pathToTemplateFile);
     generator.Handle(result);
 }
        private string ProcessViewTemplate(ISparkViewEngine engine, string templateName, GatheredResultSet result)
        {
            var view = (SparkView) engine.CreateInstance(
                new SparkViewDescriptor()
                    .AddTemplate(templateName));

            view.Model = result;

            var sb = new StringBuilder();
            using (var writer = new StringWriter(sb))
            {
                view.RenderView(writer);
            }

            return sb.ToString();
        }