Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        public JsonResult AddTransaction(TransactionViewModel transaction)
        {
            var result = "false";

            if (ModelState.IsValid)
            {
                result = transactionRepository.AddTransactionLog(transaction);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 4
0
        /// <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();
        }