public void AddTransactionLog_BuyStock() { var txViewModel = SetTransactionViewModel( false, product, 1000, 10, 50, 0, false); var except = "Success"; var actual = transactionRepository.AddTransactionLog(txViewModel); Assert.AreEqual(except, actual); CheckBuyReceived(product, txViewModel); CheckAssetReceived(product, txViewModel, dbAsset); dbConnection.Received().SaveChanges(); }
public JsonResult AddTransaction(TransactionViewModel transaction) { var result = "false"; if (ModelState.IsValid) { result = transactionRepository.AddTransactionLog(transaction); } return(Json(result, JsonRequestBehavior.AllowGet)); }
public void TestInitialize() { dbConnection = Substitute.For <ITaoZhugongDatabaseConnection>(); transactionRepository = Substitute.For <ITransactionRepository>(); dividendsRepository = new DividendsRepository(dbConnection, transactionRepository); dbConnection.QueryableTransactionRecords.Returns(FakeTransactionRecord.transactionRecorList.AsQueryable()); dbConnection.QueryableAssets.Returns(FakeAsset.AssetList.AsQueryable()); transactionRepository.AddTransactionLog(new TransactionViewModel()).ReturnsForAnyArgs("Success"); }
/// <summary> /// 配股日到後根據資料表對交易紀錄跟資產做加減 /// </summary> /// <param name="dividends"></param> public void SetDividendsSchedule(Dividends dividends) { if (dividends.ProductSeq == 0) { throw new DataKeyIsNullException(); } //todo 修改配股配息的條件為判斷賣出日 var ownStuckList = dbConnection.QueryableTransactionRecords.Where(p => p.ProductSeq == dividends.ProductSeq && (p.SaleTime == null || p.SaleTime <= dividends.ExRightDate) ).ToList(); if (!ownStuckList.Any()) { return; } var addMoney = (int)(ownStuckList.Sum(p => p.Num) * dividends.CashDividends); var addStuck = (int)(ownStuckList.Sum(p => p.Num) * dividends.StockDividend * 0.1); //新增transaction var transaction = new TransactionViewModel() { SoldStatus = false, ProductSeq = dividends.ProductSeq, Num = addStuck, CashDividends = addMoney, UnitPrice = 0, Fee = 0, isDividends = true, Remark = $"{DateTime.Now.ToString("yyyy")} 股利,配股 {dividends.StockDividend} /配息 {dividends.CashDividends} 。", TransactionTime = DateTime.Now, }; //新增交易紀錄 transactionRepository.AddTransactionLog(transaction); dividends.TransactionRecordSeq = dbConnection.QueryableTransactionRecords.Max(p => p.Seq); dbConnection.SaveChanges(); }