public FundDto Get(Guid id) { var listFund = new List <FundDto>(); foreach (var item in Data.ListFund) { var fundDto = new FundDto(item); listFund.Add(fundDto); } var fund = listFund.Where(e => e.fundID == id).FirstOrDefault(); return(fund); }
public async Task <IEnumerable <FundDto> > Get() { try { await Task.Delay(500); var listFund = new List <FundDto>(); foreach (var item in Data.ListFund) { var fundDto = new FundDto(item); listFund.Add(fundDto); } return(listFund.OrderByDescending(e => e.fundNumberVoucher)); } catch (Exception) { return(null); } }
public IActionResult Compute() { var fundDto = new FundDto { StartDate = Convert.ToDateTime(Request.Form["startdate"]), EndDate = Convert.ToDateTime(Request.Form["enddate"]) }; var fundsList = _context.Set <FundModel>().Where(a => a.CurrentDateTime >= fundDto.StartDate && a.CurrentDateTime <= fundDto.EndDate).ToList(); //var fundDict = new Dictionary<DateTime, FundModel>(); // 注意:查询起始时间的累计涨跌幅 = 1 for (var i = 0; i < fundsList.Count; i++) { var fundModel = fundsList[i]; if (i == 0) { // 上证指数涨跌幅 fundModel.ShanghaiCompositeIndexCompute = 0; // 平安银行相对收益 fundModel.PinganBankRelativeGain = 1; // 贵州茅台相对收益 fundModel.MoutaiChinaRelativeGain = 1; // 中信建设相对收益 fundModel.CiciCiticRelativeGain = 1; // 华兴源创相对收益 fundModel.SuzhouHYCTechnologyRelativeGain = 1; // 同达创业相对收益 fundModel.ShanghaiTongdaVentureCapitalCoRelativeGain = 1; fundModel.ShanghaiCompositeIndex = Math.Round(fundModel.ShanghaiCompositeIndex, 2); } else { var lastFundModel = fundsList[i - 1]; // 上证指数涨跌幅 fundModel.ShanghaiCompositeIndexCompute = fundModel.ShanghaiCompositeIndex / lastFundModel.ShanghaiCompositeIndex - 1; if (fundModel.PinganBank == 0 || lastFundModel.PinganBank == 0) { fundModel.PinganBankRelativeGain = 1; } else { fundModel.PinganBankRelativeGain = (((fundModel.PinganBank / lastFundModel.PinganBank - 1) - fundModel.ShanghaiCompositeIndexCompute) + 1) * lastFundModel.PinganBankRelativeGain; } if (fundModel.MoutaiChina == 0 || lastFundModel.MoutaiChina == 0) { fundModel.MoutaiChinaRelativeGain = 1; } else { fundModel.MoutaiChinaRelativeGain = (((fundModel.MoutaiChina / lastFundModel.MoutaiChina - 1) - fundModel.ShanghaiCompositeIndexCompute) + 1) * lastFundModel.MoutaiChinaRelativeGain; } if (fundModel.CiciCitic == 0 || lastFundModel.CiciCitic == 0) { fundModel.CiciCiticRelativeGain = 1; } else { fundModel.CiciCiticRelativeGain = (((fundModel.CiciCitic / lastFundModel.CiciCitic - 1) - fundModel.ShanghaiCompositeIndexCompute) + 1) * lastFundModel.CiciCiticRelativeGain; } if (fundModel.SuzhouHYCTechnology == 0 || lastFundModel.SuzhouHYCTechnology == 0) { fundModel.SuzhouHYCTechnologyRelativeGain = 1; } else { fundModel.SuzhouHYCTechnologyRelativeGain = (((fundModel.SuzhouHYCTechnology / lastFundModel.SuzhouHYCTechnology - 1) - fundModel.ShanghaiCompositeIndexCompute) + 1) * lastFundModel.SuzhouHYCTechnologyRelativeGain; } if (fundModel.ShanghaiTongdaVentureCapitalCo == 0 || lastFundModel.ShanghaiTongdaVentureCapitalCo == 0) { fundModel.ShanghaiTongdaVentureCapitalCoRelativeGain = 1; } else { fundModel.ShanghaiTongdaVentureCapitalCoRelativeGain = (((fundModel.ShanghaiTongdaVentureCapitalCo / lastFundModel.ShanghaiTongdaVentureCapitalCo - 1) - fundModel.ShanghaiCompositeIndexCompute) + 1) * lastFundModel.ShanghaiTongdaVentureCapitalCoRelativeGain; } fundModel.ShanghaiCompositeIndex = Math.Round(fundModel.ShanghaiCompositeIndex, 2); fundModel.ShanghaiCompositeIndexCompute = Math.Round(fundModel.ShanghaiCompositeIndexCompute * 100, 2); fundModel.PinganBankRelativeGain = Math.Round(fundModel.PinganBankRelativeGain, 2); fundModel.MoutaiChinaRelativeGain = Math.Round(fundModel.MoutaiChinaRelativeGain, 2); fundModel.CiciCiticRelativeGain = Math.Round(fundModel.CiciCiticRelativeGain, 2); fundModel.SuzhouHYCTechnologyRelativeGain = Math.Round(fundModel.SuzhouHYCTechnologyRelativeGain, 2); fundModel.ShanghaiTongdaVentureCapitalCoRelativeGain = Math.Round(fundModel.ShanghaiTongdaVentureCapitalCoRelativeGain, 2); } } // 计算单日上证指数涨跌幅 = 当日上证指数 / 上日上证指数 - 1 // 计算单日贵州茅台单日涨跌幅 = 当日股票价 / 上日股票价 - 1 // 计算相对收益 = 累计涨跌幅 = ((股票单日涨跌幅-上证指数涨跌幅) + 1) * 累计涨跌幅 return(View(fundsList)); }