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)); }
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)); }
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); }
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; }