Beispiel #1
0
        public CalculateRealStateFundsResult CalculateRealStateFunds(CalculateRealStateFundsParam param)
        {
            var result = new CalculateRealStateFundsResult();

            var actualYear  = DateTime.Now.Year;
            var initialDate = new DateTime((actualYear - 10), 1, 1);
            var finalDate   = new DateTime(actualYear, 12, 31);

            var stockRepository = new StockRepository();

            var filter = new GetAllStocksFilter(10, "12");
            var stocks = stockRepository.GetAllStocks(filter);

            foreach (var stock in stocks)
            {
                var getFilter         = new GetStockNegotiationFilter(stock.Code, initialDate, finalDate);
                var stockNegotiations = stockRepository.GetStockNegotiation(getFilter);

                var realStateFundsStatistics = new RealStateFundsStatistics(stock, stockNegotiations);

                result.Statistics.Add(realStateFundsStatistics.MapToResult());
            }

            return(result);
        }
Beispiel #2
0
        private static void GenerateSheet(CalculateRealStateFundsResult result, string file)
        {
            var path = Path.Combine(Environment.CurrentDirectory, file);

            using (StreamWriter sw = new StreamWriter(path))
            {
                sw.AutoFlush = true;
                sw.WriteLine("Code;CountInNegotiation;FirstNegotiationDate;LastNegotiationDate;MaxLastValue;MinLastValue;LastValue");
                foreach (var item in result.Statistics)
                {
                    var line = $"{item.Code};" +
                               $"{item.CountInNegotiation.ToString()};" +
                               $"{item.FirstNegotiationDate.ToString("dd/MM/yyyy")};" +
                               $"{item.LastNegotiationDate.ToString("dd/MM/yyyy")};" +
                               $"{item.MaxLastValue.ToString("C")};" +
                               $"{item.MinLastValue.ToString("C")};" +
                               $"{item.LastValue.ToString("C")}";
                    sw.WriteLine(line);
                }
                sw.Close();
            }

            Console.WriteLine($"Arquivo {file} gerado com {result.Statistics.Count} linhas");
        }