コード例 #1
0
ファイル: ReportService.cs プロジェクト: MikeK93/ReportApp
 public ReportService(IRecordRepository repository, IReportConverter converter, IRecordValidator recordValidator, ITagRepository tagRepository)
 {
     _recordsRepository = repository;
     _converter = converter;
     _recordValidator = recordValidator;
     _tagRepository = tagRepository;
 }
コード例 #2
0
ファイル: TestSuiteOne.cs プロジェクト: steveski/crispin
        public static void Go()
        {
            var reports = new RazorTemplateBase[] {
                new Report1 {
                        Packages = new Package[] {
                            new Package{ Origin = "Cracow", Destination = "Dululu", Cost = 15.0m },
                            new Package{ Origin = "Emerald", Destination = "Dingo", Cost = 15.0m },
                            new Package{ Origin = "Duaringa", Destination = "Gladstone", Cost = 12.5m },
                            new Package{ Origin = "Dingo", Destination = "Dingo", Cost = 16.0m },
                            new Package{ Origin = "Dululu", Destination = "Duaringa", Cost = 12.5m },
                            new Package{ Origin = "Gladstone", Destination = "Dululu", Cost = 8.5m }
                        }
                 },
                 new StaticTest1(),
                 new CustomPageSetupTest(),
                 new TableBackgroundTest(),
                 new LeftPaddedTable(),
                 new crispin_razor_example(),
                 new test_with_bom_report(),
                 new RightAlignedNestedTable(),
                 new system_dot_web_tests(),
                 new Images(),
            };
            var converters = new IReportConverter[] {
                new CsvReportConverter(),
                new HtmlReportConverter(),
                new PdfReportConverter()
            };

            var reportIndex = GetReportIndex(reports);
            var xrpt = reports[reportIndex - 1].TransformText();
            Console.WriteLine("Generated report:");
            Console.WriteLine(xrpt);
            WriteToFile(xrpt, "xrpt.txt");

            int converterIndex = GetConverterIndex(converters);
            int convertAction = GetConvertAction();
            var converter = converters.ToList()[converterIndex - 1];

            if (convertAction == 1)
            {
                var convertedReport = converter.ConvertToString(xrpt);
                Console.WriteLine("Converted report:");
                Console.WriteLine(convertedReport);
                WriteToFile(convertedReport, "conv.txt");
            }
            else if (convertAction == 2 || convertAction == 3)
            {
                var convertedReport = converter.ConvertToBuffer(xrpt, "TEST");
                Console.WriteLine("Converted to buffer.");
                var dest = convertAction == 2 ? "conv.bin" : "conv.pdf";
                WriteToFile(convertedReport, dest);
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
コード例 #3
0
        public void AddReportConverter_WithCellType_CanBeRequested()
        {
            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <ReportCell>()
                                              .BuildServiceProvider();

            IReportConverter <ReportCell> converter = serviceProvider.GetService <IReportConverter <ReportCell> >();

            converter.Should().NotBeNull();
        }
コード例 #4
0
 public ModelBasedReportController(ReportService reportService, IReportConverter <HtmlReportCell> htmlConverter, IStringWriter stringWriter, IReportConverter <ExcelReportCell> excelConverter, IEpplusWriter excelWriter, ProductService productService, UserService userService)
 {
     this.reportService  = reportService;
     this.htmlConverter  = htmlConverter;
     this.stringWriter   = stringWriter;
     this.excelConverter = excelConverter;
     this.excelWriter    = excelWriter;
     this.productService = productService;
     this.userService    = userService;
 }
コード例 #5
0
ファイル: DocumentService.cs プロジェクト: anaskret/CarRent
 public DocumentService(IOrderConverter orderConverter, IOrderRepository orderRepository,
                        IReportConverter reportConverter, IReportRepository reportRepository,
                        ICarRepository carRepository, IWorkerRepository workerRepository)
 {
     _orderConverter   = orderConverter;
     _orderRepository  = orderRepository;
     _reportConverter  = reportConverter;
     _reportRepository = reportRepository;
     _carRepository    = carRepository;
     _workerRepository = workerRepository;
 }
コード例 #6
0
        public void AddReportConverter_WithInterface_HasHandlersImplementingInterface()
        {
            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell, IHtmlPropertyHandler>()
                                              .BuildServiceProvider();

            IReportConverter <HtmlCell> converter = serviceProvider.GetService <IReportConverter <HtmlCell> >();

            converter.Should().NotBeNull()
            .And.BeOfType <ReportConverter <HtmlCell> >();
            ((ReportConverter <HtmlCell>)converter).Handlers.Should()
            .HaveCount(2)
            .And.AllBeAssignableTo <IHtmlPropertyHandler>();
        }
コード例 #7
0
        public void AddReportConverter_ConverterWithName_CanBeRequested()
        {
            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell>("name")
                                              .BuildServiceProvider();

            IReportConverterFactory <HtmlCell> converterFactory =
                serviceProvider.GetService <IReportConverterFactory <HtmlCell> >();

            converterFactory.Should().NotBeNull();
            IReportConverter <HtmlCell> converter = converterFactory.Get("name");

            converter.Should().NotBeNull();
        }
コード例 #8
0
        public void AddReportConverter_WithHandler_HasHandler()
        {
            HtmlCellHandler cellHandler = new HtmlCellHandler();

            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell>(cellHandler)
                                              .BuildServiceProvider();

            IReportConverter <HtmlCell> converter = serviceProvider.GetService <IReportConverter <HtmlCell> >();

            converter.Should().NotBeNull()
            .And.BeOfType <ReportConverter <HtmlCell> >();
            ((ReportConverter <HtmlCell>)converter).Handlers.Should()
            .Equal(cellHandler);
        }
コード例 #9
0
        public void AddReportConverter_ConverterWithInterfaceAndName_HasHandlersImplementingInterface()
        {
            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell, IHtmlPropertyHandler>("name")
                                              .BuildServiceProvider();

            IReportConverterFactory <HtmlCell> converterFactory =
                serviceProvider.GetService <IReportConverterFactory <HtmlCell> >();

            converterFactory.Should().NotBeNull();
            IReportConverter <HtmlCell> converter = converterFactory.Get("name");

            (converter as ReportConverter <HtmlCell>)?.Handlers.Should()
            .HaveCount(2)
            .And.AllBeAssignableTo <IHtmlPropertyHandler>();
        }
コード例 #10
0
        public void AddReportConverter_ConverterWithNameRequestedTwice_ReturnsSameConverter()
        {
            const string name = "name";

            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell>(name)
                                              .BuildServiceProvider();

            IReportConverterFactory <HtmlCell> converterFactory =
                serviceProvider.GetService <IReportConverterFactory <HtmlCell> >();

            IReportConverter <HtmlCell> firstConverter  = converterFactory.Get(name);
            IReportConverter <HtmlCell> secondConverter = converterFactory.Get(name);

            firstConverter.Should().BeSameAs(secondConverter);
        }
コード例 #11
0
        public void AddReportConverter_ConverterWithHandlerAndName_HasHandler()
        {
            HtmlCellHandler cellHandler = new HtmlCellHandler();

            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell>("name", cellHandler)
                                              .BuildServiceProvider();

            IReportConverterFactory <HtmlCell> converterFactory =
                serviceProvider.GetService <IReportConverterFactory <HtmlCell> >();

            converterFactory.Should().NotBeNull();
            IReportConverter <HtmlCell> converter = converterFactory.Get("name");

            (converter as ReportConverter <HtmlCell>)?.Handlers.Should()
            .Equal(cellHandler);
        }
コード例 #12
0
        public void AddReportConverter_WithHandlerAndInterface_HasHandlerAndAllHandlersImplementingInterface()
        {
            HtmlCellHandler cellHandler = new HtmlCellHandler();

            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell, IHtmlPropertyHandler>(cellHandler)
                                              .BuildServiceProvider();

            IReportConverter <HtmlCell> converter = serviceProvider.GetService <IReportConverter <HtmlCell> >();

            converter.Should().NotBeNull()
            .And.BeOfType <ReportConverter <HtmlCell> >();
            ((ReportConverter <HtmlCell>)converter).Handlers.Should()
            .HaveCount(3)
            .And.Contain(h =>
                         h == cellHandler ||
                         h is IHtmlPropertyHandler);
        }
コード例 #13
0
        public void AddReportConverter_ConverterWithHandlerAndInterfaceAndName_HasHandlerAndAllHandlersImplementingInterface()
        {
            HtmlCellHandler cellHandler = new HtmlCellHandler();

            ServiceProvider serviceProvider = new ServiceCollection()
                                              .AddReportConverter <HtmlCell, IHtmlPropertyHandler>("name", cellHandler)
                                              .BuildServiceProvider();

            IReportConverterFactory <HtmlCell> converterFactory =
                serviceProvider.GetService <IReportConverterFactory <HtmlCell> >();

            converterFactory.Should().NotBeNull();
            IReportConverter <HtmlCell> converter = converterFactory.Get("name");

            (converter as ReportConverter <HtmlCell>)?.Handlers.Should()
            .HaveCount(3)
            .And.Contain(h =>
                         h == cellHandler ||
                         h is IHtmlPropertyHandler);
        }
コード例 #14
0
        public IReportConverter <TReportCell> Get(string name)
        {
            if (this.converters.ContainsKey(name))
            {
                return(this.converters[name]);
            }

            ReportConverterRegistration <TReportCell> registration = this.options.Registrations
                                                                     .FirstOrDefault(r => r.Name.Equals(name, StringComparison.Ordinal));

            if (registration == null)
            {
                throw new ArgumentException($"Report converter with name \"{name}\" is not registered.");
            }

            IReportConverter <TReportCell> converter = XReportsDI.CreateReportConverter(this.serviceProvider, registration.Handlers, registration.PropertyHandlersInterface);

            this.converters.Add(name, converter);

            return(converter);
        }
コード例 #15
0
        public static void Go()
        {
            var reports = new RazorTemplateBase[] {
                new Report1 {
                    Packages = new Package[] {
                        new Package {
                            Origin = "Cracow", Destination = "Dululu", Cost = 15.0m
                        },
                        new Package {
                            Origin = "Emerald", Destination = "Dingo", Cost = 15.0m
                        },
                        new Package {
                            Origin = "Duaringa", Destination = "Gladstone", Cost = 12.5m
                        },
                        new Package {
                            Origin = "Dingo", Destination = "Dingo", Cost = 16.0m
                        },
                        new Package {
                            Origin = "Dululu", Destination = "Duaringa", Cost = 12.5m
                        },
                        new Package {
                            Origin = "Gladstone", Destination = "Dululu", Cost = 8.5m
                        }
                    }
                },
                new StaticTest1(),
                new CustomPageSetupTest(),
                new TableBackgroundTest(),
                new LeftPaddedTable(),
                new crispin_razor_example(),
                new test_with_bom_report(),
                new RightAlignedNestedTable(),
                new system_dot_web_tests(),
                new Images(),
            };
            var converters = new IReportConverter[] {
                new CsvReportConverter(),
                new HtmlReportConverter(),
                new PdfReportConverter()
            };

            var reportIndex = GetReportIndex(reports);
            var xrpt        = reports[reportIndex - 1].TransformText();

            Console.WriteLine("Generated report:");
            Console.WriteLine(xrpt);
            WriteToFile(xrpt, "xrpt.txt");

            int converterIndex = GetConverterIndex(converters);
            int convertAction  = GetConvertAction();
            var converter      = converters.ToList()[converterIndex - 1];

            if (convertAction == 1)
            {
                var convertedReport = converter.ConvertToString(xrpt);
                Console.WriteLine("Converted report:");
                Console.WriteLine(convertedReport);
                WriteToFile(convertedReport, "conv.txt");
            }
            else if (convertAction == 2 || convertAction == 3)
            {
                var convertedReport = converter.ConvertToBuffer(xrpt, "TEST");
                Console.WriteLine("Converted to buffer.");
                var dest = convertAction == 2 ? "conv.bin" : "conv.pdf";
                WriteToFile(convertedReport, dest);
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
コード例 #16
0
 public GenericController(IReportConverter <HtmlReportCell> htmlConverter, IStringWriter stringWriter)
 {
     this.htmlConverter = htmlConverter;
     this.stringWriter  = stringWriter;
 }