Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
        }