Ejemplo n.º 1
0
        public void Export(PowerTrade aggregatedTrade, string directoryPath)
        {
            try
            {
                var data = DateTimeManager.EnrichDataWithDates(aggregatedTrade);

                var fullPath = CombineFullPathToExport(directoryPath, aggregatedTrade);

                if (!Directory.Exists(directoryPath))
                {
                    Directory.CreateDirectory(directoryPath);
                }

                int suffix = 1;
                while (File.Exists(fullPath))
                {
                    fullPath = CombineFullPathToExport(directoryPath, aggregatedTrade, suffix.ToString());
                    suffix++;
                }

                using (var writer = new StreamWriter(fullPath))
                    using (var csv = new CsvWriter(writer))
                    {
                        csv.WriteRecords(data);
                    }
            }
            catch (Exception e)
            {
                throw new Exception("Report export failed", e.InnerException);
            }
        }
Ejemplo n.º 2
0
        public void GenerateReport(DateTime dateTimeUtc)
        {
            _log.Info("Report generation started");

            var reportingDate = DateTimeManager.CalculateReportingDate(dateTimeUtc,
                                                                       _reporterConfiguration.GetReportingDayStartOffset());

            var trades = _powerTradesDataProvider.GetPowerTrades(reportingDate);

            _powerTradesManager.Validate(trades);

            var aggregatedTrade = _powerTradesManager.Aggregate(trades);

            _powerTradesReportExporter.Export(aggregatedTrade, _reporterConfiguration.GetReportDirectory());

            _log.Info("Report generation finished");
        }