public Report CreateReport(ReportConfig config, string fileName)
        {
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var text = File.ReadAllText(fileName);
            var data = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
        public Report CreateReport()
        {
            var config          = ParseConfig();
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 3
0
        public Report CreateReport()//это паттерн шаблонный метод, наследники переопределяют поведение GetDataRows
        {
            var config          = ParseConfig();
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
        public Report CreateReport() //Фабричный метод, Шаблонный метод,
        {
            var config          = ParseConfig();
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text); //Вот кусок шаблона, реализуется в наследниках

            return(dataTransformer.TransformData(data));
        }
Esempio n. 5
0
        public Report CreateReport() // шаблонный метод(использует внутри абстрактный метод GetDataRows(), реализуеммый наследниками)
        {
            var config          = argParser.ParseReportConfig(_args);
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = argParser.ParseName(_args);
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 6
0
        public Report CreateReport()                                        //это шаблонный метод, поскольку содержит в себе аюстрактный GetDataRows(), чья реализация зависит от потомков данного класса
        {
            var config          = ParseConfig();                            //в принципе можно увидеть некий фасад, упрощающий подсистему
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 7
0
        /* Шаблонный метод GetDataRows. ReportServiceBase - абстрактный класс; CsvReportService, XlsxReportService, TxtReportService - подклассы, переопределяющие значение GetDataRows*/
        public Report CreateReport()
        {
            var config = ParseConfig();
            /*DataTransformerCreator - фабричный метод для создания цепочки обязанностей, тк мы изначально не знаем какие методы нам понадобятся*/
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 8
0
        // TODO вынесли парсинг конфига в другое место. Теперь конфиг передается в качестве аргумента
        public Report CreateReport(ReportConfig config)
        {
            // TODO найден паттерн: TemplateMethod
            // Мы делегируем парсинг DataRow соответствующим классам, которые непосредственно реализуют работу с конкретными форматами
            // Тем самым, внедрение поддержки новых форматов упрощается

            var dataTransformer = DataTransformerCreator.CreateTransformer(config);
            var text            = File.ReadAllText(config.FileName);
            var data            = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 9
0
        public Report CreateReport()
        {
            var config          = ParseConfig();
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            //pattern template method.
            //primitive operation GetDataRows is implemented in child classes
            //and then used in this method
            var data = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 10
0
        public Report CreateReport(string[] args)
        {
            if (!configParser.TryParseConfig(args, out var config))
            {
                return(null);
            }

            var dataParser = DataParserProvider.Provide(config.SourceFile);
            var data       = dataParser.GetDataRows(config.SourceFile);

            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            return(dataTransformer.TransformData(data));
        }
Esempio n. 11
0
        public Report CreateReport()
        {
            /*
             * Тут вот у нас стратегия. Хорошее решение, т.к. есть "шаблон" создания
             * репорта, где одна из функций (GetDataRows) зависит от конкретного
             * типа файла, но участие в построение играет одно и то же.
             */

            var config          = ParseConfig();
            var dataTransformer = DataTransformerCreator.CreateTransformer(config);

            var fileName = _args[0];
            var text     = File.ReadAllText(fileName);
            var data     = GetDataRows(text);

            return(dataTransformer.TransformData(data));
        }