main
 1using System.Collections.Generic;
 2using System.Linq;
 3using Spec.Dox.Domain.Repositories;
 4using Spec.Dox.Presentation.Views;
 5
 6namespace Spec.Dox.Presentation.Presenters
 7{
 8    public interface IReportPresenter
 9    {
10        void Initialize(IEnumerable<string> command_line_arguments);
11    }
12
13    public class ReportPresenter : IReportPresenter
14    {
15        readonly IHtmlReport report;
16        readonly ITestContextRepository repository;
17
18        public ReportPresenter() : this(new HtmlReport(), new TestContextRepository()) {}
19
20        public ReportPresenter(IHtmlReport report, ITestContextRepository repository)
21        {
22            this.report = report;
23            this.repository = repository;
24        }
25
26        public void Initialize(IEnumerable<string> command_line_arguments)
27        {
28            foreach (var context in repository.All(command_line_arguments.ElementAt(0)))
29                report.Add(context, context.AllSpecifications());
30            report.publish_to_same_folder_as(command_line_arguments.ElementAt(0));
31        }
32    }
33}