コード例 #1
0
        public async Task <IActionResult> Edit(long id, [Bind("StatementId,Year")] FinanceStatement financeStatement)
        {
            if (id != financeStatement.StatementId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(financeStatement);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FinanceStatementExists(financeStatement.StatementId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(financeStatement));
        }
コード例 #2
0
        public async Task <IActionResult> Create([Bind("StatementId,Year")] FinanceStatement financeStatement)
        {
            if (ModelState.IsValid)
            {
                _context.Add(financeStatement);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(financeStatement));
        }
コード例 #3
0
        public async Task Execute <T>(Guid accountId, Guid financeStatementId, Title title) where T :  class, IFinanceStatement
        {
            Account account = await _accountReadOnlyRepository.Get(accountId);

            if (account == null)
            {
                throw new AccountNotFoundException($"The account {accountId} does not exists");
            }

            FinanceStatementCollection collection = account.GetCollecion <T>();

            if (collection.Any(x => x.Title == title && x.Id != financeStatementId))
            {
                throw new FinanceStatementAlreadyExistsException($"Title {title} already exists!");
            }


            FinanceStatement financeStatement = (FinanceStatement)collection.Get(financeStatementId);

            financeStatement.Update(title);

            await _accountWriteOnlyRepository.Update(account, financeStatement);
        }
コード例 #4
0
            public static FinanceStatement GetTopFinanceStatement(TopFinanceStatementBy type, TradeCenter tradeCenter)
            {
                FinanceStatement currentData = new FinanceStatement();

                //DataTable dtPriceData = new DataTable("StockPriceData");
                //dtPriceData.Merge(GetStockSymbolData(TradeCenter.HaSTC));
                //dtPriceData.Merge(GetStockSymbolData(TradeCenter.HoSE));

                //string cacheName = "";

                //if (type == TopFinanceStatementBy.TopPE)
                //{
                //    if (tradeCenter == TradeCenter.AllTradeCenter)
                //    {
                //        cacheName += "MemCached_Top10_PE_All";
                //    }
                //    else if (tradeCenter == TradeCenter.HaSTC)
                //    {
                //        cacheName += "MemCached_Top10_PE_HaSTC";
                //    }
                //    else
                //    {
                //        cacheName += "MemCached_Top10_PE_HoSE";
                //    }
                //}
                //else if (type == TopFinanceStatementBy.TopEPS)
                //{
                //    if (tradeCenter == TradeCenter.AllTradeCenter)
                //    {
                //        cacheName += "MemCached_Top10_EPS_All";
                //    }
                //    else if (tradeCenter == TradeCenter.HaSTC)
                //    {
                //        cacheName += "MemCached_Top10_EPS_HaSTC";
                //    }
                //    else
                //    {
                //        cacheName += "MemCached_Top10_EPS_HoSE";
                //    }
                //}
                //else
                //{
                //    if (tradeCenter == TradeCenter.AllTradeCenter)
                //    {
                //        cacheName += "MemCached_Top10_Capital_All";
                //    }
                //    else if (tradeCenter == TradeCenter.HaSTC)
                //    {
                //        cacheName += "MemCached_Top10_Capital_HaSTC";
                //    }
                //    else
                //    {
                //        cacheName += "MemCached_Top10_Capital_HoSE";
                //    }
                //}
                ////using (FinanceStatementData fsdTopData = new FinanceStatementData(cacheName))
                //DataTable fsdTopData = DistCache.Get<DataTable>(cacheName);

                //if (fsdTopData == null || fsdTopData.Rows.Count == 0)
                //{
                    //#region Get From WebService
                    //if (fsdTopData == null || fsdTopData.Rows.Count == 0)
                    //{
                    //    //CafeF_DataService.CafeF_DataService dataServices = new CafeF_EmbedData.CafeF_DataService.CafeF_DataService();
                    //    WServices.Function dataServices = new WServices.Function();
                var key = "";
                switch (type)
                {
                    case TopFinanceStatementBy.TopEPS:
                        switch (tradeCenter)
                        {
                            case TradeCenter.HaSTC:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopEPS,
                                //                                        WServices.Function.TradeCenter.HaSTC).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.Ha, RedisKey.KeyTopStockType.EPS);
                                break;
                            case TradeCenter.HoSE:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopEPS,
                                //                                        WServices.Function.TradeCenter.HoSE).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.Ho, RedisKey.KeyTopStockType.EPS);
                                break;
                            default:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopEPS,
                                //                                        WServices.Function.TradeCenter.All).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.All, RedisKey.KeyTopStockType.EPS);
                                break;
                        }
                        break;
                    case TopFinanceStatementBy.TopPE:
                        switch (tradeCenter)
                        {
                            case TradeCenter.HaSTC:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopPE,
                                //                                        WServices.Function.TradeCenter.HaSTC).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.Ha, RedisKey.KeyTopStockType.PE);
                                break;
                            case TradeCenter.HoSE:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopPE,
                                //                                        WServices.Function.TradeCenter.HoSE).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.Ho, RedisKey.KeyTopStockType.PE);
                                break;
                            default:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopPE,
                                //                                        WServices.Function.TradeCenter.All).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.All, RedisKey.KeyTopStockType.PE);
                                break;
                        }
                        break;
                    default:
                        switch (tradeCenter)
                        {
                            case TradeCenter.HaSTC:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopCapital,
                                //                                        WServices.Function.TradeCenter.HaSTC).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.Ha, RedisKey.KeyTopStockType.MarketCap);
                                break;
                            case TradeCenter.HoSE:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopCapital,
                                //                                        WServices.Function.TradeCenter.HoSE).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.Ho, RedisKey.KeyTopStockType.MarketCap);
                                break;
                            default:
                                //fsdTopData = dataServices.GetTopCompany(10,
                                //                                        WServices.Function.TopCompany.TopCapital,
                                //                                        WServices.Function.TradeCenter.All).Tables[0];
                                key = string.Format(RedisKey.KeyTopStock, RedisKey.KeyTopStockCenter.All, RedisKey.KeyTopStockType.MarketCap);
                                break;
                        }
                        break;
                }
                    //}
                    //#endregion
                //}

                //fsdTopData.TableName = "TopData";
                //using (DataSet dsTopData = new DataSet())
                //{
                //    dsTopData.Merge(dtPriceData);
                //    dsTopData.Merge(fsdTopData);

                //    DataColumn parentColumn = dsTopData.Tables["StockPriceData"].Columns["code"];
                //    DataColumn childColumn = dsTopData.Tables["TopData"].Columns[FinanceStatementData.FIELD_SYMBOL];

                //    DataRelation relTopPE_StockPriceData = new DataRelation("TopData_StockPriceData", parentColumn, childColumn, false);

                //    dsTopData.Relations.Add(relTopPE_StockPriceData);

                //    dsTopData.Tables["TopData"].Columns.Add("basicPrice", typeof(double), "Parent.basicPrice");
                //    dsTopData.Tables["TopData"].Columns.Add("currentPrice", typeof(double), "Parent.currentPrice");
                //    dsTopData.Tables["TopData"].Columns.Add("chgIndex", typeof(double), "Parent.chgIndex");
                //    dsTopData.Tables["TopData"].Columns.Add("pctIndex", typeof(double), "Parent.pctIndex");

                //    List<FinanceStatementItem> items = new List<FinanceStatementItem>();

                //    for (int i = 0; i < dsTopData.Tables["TopData"].Rows.Count; i++)
                //    {
                //        if (Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["currentPrice"]) == 0)
                //        {
                //            items.Add(new FinanceStatementItem(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_SYMBOL].ToString(),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_PE]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_EPS]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_CAPITAL]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["basicPrice"]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["chgIndex"]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["pctIndex"]), 0, 0));
                //        }
                //        else
                //        {
                //            items.Add(new FinanceStatementItem(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_SYMBOL].ToString(),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_PE]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_EPS]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i][FinanceStatementData.FIELD_CAPITAL]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["currentPrice"]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["chgIndex"]),
                //                                        Lib.Object2Double(dsTopData.Tables["TopData"].Rows[i]["pctIndex"]), 0, 0));
                //        }
                //    }

                //    currentData.FinanceStatements = items.ToArray();
                //}
                var items = new List<FinanceStatementItem>();

                var tops = BLFACTORY.RedisClient.Get<List<TopStock>>(key);
                    //'Quantity':0,'Price':1,'Change':2,'ChangePercent':3
                //}
                foreach (var top in tops)
                {
                    items.Add(new FinanceStatementItem(top.Symbol,top.PE, top.EPS, top.MarketCap, top.Price, top.Price - top.BasicPrice, top.BasicPrice==0?0:((top.Price - top.BasicPrice)/top.BasicPrice*100), 0,0));
                }

                currentData.FinanceStatements = items.ToArray();
                return currentData;
            }