예제 #1
0
        public List <TransEntity> GetStockTranHistory(ShowStockHistoryReq req)
        {
            var startTime = req.DateRange.StartDate;
            var endTime   = req.DateRange.EndDate;
            var data      = _db.Trans.Where(x =>
                                            x.TranTime >= startTime && x.TranTime <= endTime &&
                                            x.StockId == req.StockId);

            return(data.ToList());
        }
예제 #2
0
    public async Task ShowStockHistoryAsync(ShowStockHistoryReq req)
    {
        var tranHistory = _stockRepo.GetStockTranHistory(req);

        await EnsuredStockHistory(req.DateRange, req.StockId);

        var stockHistoryReq = new GetStockHistoryReq()
        {
            StartTime = req.DateRange.StartDate.StartOfMonth(),
            EndTime   = req.DateRange.EndDate,
            StockId   = req.StockId
        };

        var stockHistory = _stockRepo.GetStockHistory(stockHistoryReq);

        foreach (var month in req.DateRange.GetRangeByMonth())
        {
            var closingDays = stockHistory
                              .Count(x => x.TranDate.EqualYearMonth(month));
            var closingSumPrice = stockHistory
                                  .Where(x => x.TranDate.EqualYearMonth(month))
                                  .Sum(x => x.ClosingPrice);

            var closingPrice = 0m;
            if (closingDays != 0)
            {
                closingPrice = closingSumPrice / closingDays;
            }

            var valueStr = GetValueStr(closingPrice);
            Console.Write($"{month.ToString("yy-MM")}-");
            Console.BackgroundColor = ConsoleColor.Gray;
            Console.Write($"{valueStr}");
            Console.BackgroundColor = ConsoleColor.Black;
            Console.WriteLine($" {closingPrice.ToNumberString(6)}");
        }
    }