public int CreateStockPurchase(AddPurchaseTransactionVm addPurchaseTransactionVm)
        {
            var purchaseTransaction = new PurchaseTransaction()
            {
                BrokerageAccountId   = addPurchaseTransactionVm.BrokerageAccountId,
                Commission           = addPurchaseTransactionVm.Commission,
                SecurityId           = addPurchaseTransactionVm.SecurityId,
                ShareQuantity        = addPurchaseTransactionVm.ShareQuantity,
                UnitPrice            = addPurchaseTransactionVm.UnitPrice,
                TransactionDate      = addPurchaseTransactionVm.TransactionDate,
                ClosedShares         = 0,
                RemainingShares      = addPurchaseTransactionVm.ShareQuantity,
                PositionClosedStatus = false
            };

            DbOperationStatus opStatus = PurchaseTransactionRepository.InsertPurchaseTransaction(purchaseTransaction);

            if (opStatus.OperationSuccessStatus)
            {
                return(opStatus.AffectedIndices.First());
            }
            return(-1);
        }
        public ActionResult AddPurchase(AddPurchaseTransactionVm addPurchaseTransactionVm)
        {
            if (ModelState.IsValid)
            {
                int stockTransactionId = PurchaseTransactionService.CreateStockPurchase(addPurchaseTransactionVm);

                if (stockTransactionId > 0)
                {
                    this.FlashSuccess("Successfully created the stock transaction.", "PurchaseDetails", "StockTransactions");
                    return(RedirectToAction("PurchaseDetails", "StockTransactions", new { area = "", id = stockTransactionId }));
                }
                this.FlashError("Could not create the stock transaction. Please try again.", "AddPurchase", "StockTransactions");
            }

            var brokerageAccountList = BrokerageAccountService.GetBrokerageAccountListForActiveUser();

            ViewBag.BrokerageAccountId = new SelectList(brokerageAccountList, "Id", "Title", addPurchaseTransactionVm.BrokerageAccountId);

            var stockList = StockService.GetStockList();

            ViewBag.SecurityId = new SelectList(stockList, "Id", "Title", addPurchaseTransactionVm.SecurityId);

            return(View());
        }