Пример #1
0
 /// <summary>
 /// Save calculated values in DTO buffer
 /// </summary>
 /// <param name="savePortfolioFundDTO"></param>
 /// <param name="cashPerFund"></param>
 /// <param name="lastTradeDay"></param>
 /// <param name="fundPrice"></param>
 /// <param name="NewsharesNum"></param>
 /// <param name="thisMonthsSharesNum"></param>
 /// <param name="thisMonthsSharesVal"></param>
 private void SaveDtoPortFundShares(
     PortfolioFundDTO savePortfolioFundDTO, decimal cashPerFund, string lastTradeDay,
     FundPrice fundPrice, decimal NewsharesNum, decimal thisMonthsSharesNum,
     decimal thisMonthsSharesVal)
 {
     savePortfolioFundDTO.SharesNum         = thisMonthsSharesNum;
     savePortfolioFundDTO.SharesValue       = thisMonthsSharesVal;
     savePortfolioFundDTO.SharesTradeDay    = lastTradeDay;
     savePortfolioFundDTO.SharesFundPriceId = fundPrice.Id;
     savePortfolioFundDTO.NewSharesNum      = NewsharesNum;
     savePortfolioFundDTO.NewSharesValue    = cashPerFund;
     savePortfolioFundDTO.UpdatedOnUTC      = DateTime.UtcNow;
 }
Пример #2
0
        /// <summary>
        /// Get a single fund latest closing price relative to the requested year month
        /// </summary>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <param name="fundId"></param>
        /// <returns></returns>
        private FundPrice GetFundPriceForCurrentMonth(int year, int month, int fundId)
        {
            FundPrice fundPriceToRet = null;

            //Find last trade day and include +1 month when the awarding occurs
            var lastMonthDay = new DateTime(year, month, 1).AddMonths(2).AddDays(-1).ToString("yyyyMMdd");
            var lastTradeDay = db.FundPrices
                               .Where(fp => fp.FundId == fundId &&
                                      string.Compare(fp.YearMonthDay, lastMonthDay, StringComparison.Ordinal) <= 0)
                               .Select(fp => fp.YearMonthDay)
                               .Max();

            string locLastTradeDay = lastTradeDay;

            // Find latest closing price
            fundPriceToRet = db.FundPrices
                             .Single(fp => fp.FundId == fundId && fp.YearMonthDay == locLastTradeDay);

            return(fundPriceToRet);
        }