private void btnSell_Click(object sender, RoutedEventArgs e) { Entities.Portfolio userPortfolio = Model.DBA_Portfolio.GetUpdatedPortfolio(Globals.SelectedPortfolio); int quantity; // this part is cheking if record already exists in database // if exists it updates record // if not it adds new record if (int.TryParse(tbQuantitySell.Text, out quantity)) { if (quantity != 0) { String symbol; decimal sellPrice = 0; Entities.PortfolioStock SelectedStockOwnedByUSer = (Entities.PortfolioStock)lvStockOwnedByUser.SelectedItem; List <Entities.StockDb> DatabasePrices = Globals.Db.GetAllStockPricesFromDatabase(); if (SelectedStockOwnedByUSer.SharesOwned >= quantity) { symbol = SelectedStockOwnedByUSer.Symbol; foreach (Entities.StockDb E in DatabasePrices) { if (E.Symbol == symbol) { sellPrice = (decimal)E.Bid; } } Globals.Db.AddSellTransaction(symbol, quantity, sellPrice, SelectedStockOwnedByUSer, userPortfolio); Globals.Db.DelteAllRecordWhereQtyIsZeroFromPortfolio(); RefreshStockOwnedByPortfolio(); UpdateUserBalance(); UpdatePortfolioInfo(); tbQuantitySell.Text = ""; UpdatePortfolioInfo(); RefreshTransactions(); MessageBox.Show("Transaction completed", "Confirmation", MessageBoxButton.OK); } else { MessageBox.Show("You can sell only: " + SelectedStockOwnedByUSer.SharesOwned, "Confirmation", MessageBoxButton.OK); } } else { MessageBox.Show("Qty cannot be 0", "Confirmation", MessageBoxButton.OK); } } else { MessageBox.Show("Invalid Qty", "Confirmation", MessageBoxButton.OK); } }
private void UpdateUserBalance() { decimal newNet = 0; decimal totalSum = 0; decimal newBalance = 0; Entities.Portfolio updatedPortfolio = Model.DBA_Portfolio.GetUpdatedPortfolio(Globals.SelectedPortfolio); decimal currentCash = updatedPortfolio.Cash; List <Entities.PortfolioStock> PortfolioList = Model.DBA_PortfolioStock.GetAll(Globals.SelectedPortfolio); List <Entities.StockDb> DatabaseStock = Globals.Db.GetAllStockPricesFromDatabase(); for (int i = 0; i < DatabaseStock.Count; ++i) { var tempSymbol = DatabaseStock.ElementAt(i).Symbol; foreach (Entities.PortfolioStock E in PortfolioList) { if (E.Symbol == tempSymbol) { totalSum += (decimal)(E.SharesOwned * DatabaseStock.ElementAt(i).Bid); } } } newNet = currentCash + totalSum; newBalance = (currentCash + totalSum) - 50000; Model.DBA_Portfolio.UpdateBalance(newBalance, Globals.SelectedPortfolio); Model.DBA_Portfolio.UpdateNet(newNet, Globals.SelectedPortfolio); }
private void UpdatePortfolioInfo() { Entities.Portfolio updatedPortfolio = Model.DBA_Portfolio.GetUpdatedPortfolio(Globals.SelectedPortfolio); lbCash.Content = updatedPortfolio.Cash; lbGanesLooses.Content = updatedPortfolio.Balance; lbNet.Content = updatedPortfolio.Net; }
private void btnDelete_Click(object sender, RoutedEventArgs e) { if (lvPortfolios.SelectedItem != null) { MessageBoxResult result = MessageBox.Show("Are you sure you want to delete record?", "Delete Record", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { Entities.Portfolio portfolioEntry = (Entities.Portfolio)lvPortfolios.SelectedItem; Model.DBA_Portfolio.deletePortfolioById(portfolioEntry.PortfolioID); List <Entities.Portfolio> PortfolioList = Model.DBA_Portfolio.GetAll(); lvPortfolios.ItemsSource = PortfolioList; } } }
private void ButtonOK_Click(object sender, RoutedEventArgs e) { string name = tbName.Text; if (tbEmail.Text == "" || (!Regex.Match(tbName.Text, "^[a-zA-Z.]{2,50}$").Success)) { MessageBox.Show(" Name/Email input is invalid", "Invalit Input", MessageBoxButton.OK, MessageBoxImage.Error); return; } else { } string email = tbEmail.Text; if (IsValid(tbEmail.Text)) { MessageBox.Show(" New Portfolio successfully created", "Message Box"); } else { MessageBox.Show(tbEmail.Text + " is not a valid email", "Invalit Input", MessageBoxButton.OK, MessageBoxImage.Error); return; } Entities.Portfolio p = new Entities.Portfolio() { Name = name, Email = email }; Model.DBA_Portfolio.AddNewPortfolioToTable(p); //RefreshPortfolios(); this.DialogResult = true; }
private void btnBuy_Click(object sender, RoutedEventArgs e) { int Quantity; // this part is cheking if record already exists in database // if exists it updates record // if not it adds new record if (int.TryParse(tbQuantityBuy.Text, out Quantity)) { Entities.StockDb SelectedStock = (Entities.StockDb)lvStockQuotesList.SelectedItem; Entities.Portfolio SelectedPortfolio = Model.DBA_Portfolio.GetUpdatedPortfolio(Globals.SelectedPortfolio); List <String> SymbolStringLIstOwnedByUser = new List <String>(); SymbolStringLIstOwnedByUser = Globals.Db.GetAllStockOwnedByUser(Globals.SelectedPortfolio); decimal maxQty = (decimal)SelectedPortfolio.Cash / (decimal)SelectedStock.Ask; maxQty = Math.Floor(maxQty); if (Quantity != 0) { if ((Quantity * SelectedStock.Ask) <= SelectedPortfolio.Cash) { if (SymbolStringLIstOwnedByUser.Contains(SelectedStock.Symbol, StringComparer.OrdinalIgnoreCase)) { //adds transaction record and updates cash in portfolio Globals.Db.AddBuyTransaction(SelectedPortfolio, SelectedStock, Quantity); //adds stock into users portfolio Globals.Db.UpdatePortfolioStock(SelectedPortfolio, SelectedStock, Quantity); } else { //adds transaction record and updates cash in portfolio Globals.Db.AddBuyTransaction(SelectedPortfolio, SelectedStock, Quantity); //updates stock volume and average price in portfolio Globals.Db.AddPortfolioStock(SelectedPortfolio, SelectedStock, Quantity); } tbQuantityBuy.Text = ""; RefreshStockOwnedByPortfolio(); UpdateUserBalance(); UpdatePortfolioInfo(); RefreshTransactions(); MessageBox.Show("Transaction completed", "Confirmation", MessageBoxButton.OK); } else { MessageBox.Show("You can buy only: " + maxQty + " Shares of: " + SelectedStock.Name, "Confirmation", MessageBoxButton.OK); } } else { MessageBox.Show("Qty cannot be 0", "Confirmation", MessageBoxButton.OK); } } else { MessageBox.Show("Invalid Qty", "Confirmation", MessageBoxButton.OK); } }