protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); StockName = (e.Parameter as string).Split('/')[0]; bidOffer = (BidOffer)int.Parse((e.Parameter as string).Split('/')[1]); if (bidOffer == BidOffer.offer) { BuySellButton.Background = new SolidColorBrush(Colors.Red); BuySellButton.Content = "Sell"; int QuantityOwned = DataBaseHandler.GetCount("SELECT SUM(Quantity) From Inventories WHERE StockName = '" + StockName + "' AND UserID = " + DataBaseHandler.UserID); int AlreadySelling = DataBaseHandler.GetCount("SELECT SUM(Quantity) FROM Pool WHERE Type = 1 AND User = "******"Available To Sell: " + (QuantityOwned - AlreadySelling); } else { double Balance = DataBaseHandler.GetCountDouble("SELECT SUM(Balance) FROM Users WHERE ID = " + DataBaseHandler.UserID); MySqlDataReader reader = DataBaseHandler.GetData("SELECT Price, Quantity FROM Pool WHERE Type = 0 AND User = "******"Price"] * (int)reader["Quantity"]; } double FundsAvailable = Balance - MoneyInPool; FundsAvailableBlock.Text = "Funds Available: " + Math.Round(FundsAvailable, 2); } }
private async void BuySellButtonClicked(object sender, RoutedEventArgs e) { int Quantity; if (int.TryParse(QuantityBox.Text, out Quantity)) { double Price = DataBaseHandler.GetCountDouble("SELECT SUM(CurrentPrice) FROM Stock WHERE StockName = '" + StockName + "'"); switch (bidOffer) { case BidOffer.bid: double Balance = DataBaseHandler.GetCountDouble("SELECT SUM(Balance) FROM Users WHERE ID = " + DataBaseHandler.UserID); MySqlDataReader reader = DataBaseHandler.GetData("SELECT Price, Quantity FROM Pool WHERE Type = 0 AND User = "******"Price"] * (int)reader["Quantity"]; } double FundsAvailable = Balance - MoneyInPool; int CanAfford = (int)(FundsAvailable / Price); if (Quantity > CanAfford) { Quantity = CanAfford; } ; QuantityBox.Text = Quantity.ToString(); DataBaseHandler.SetData(string.Format("INSERT INTO Pool (Type, Price, User, StockName, Quantity) VALUES ({0}, {1}, {2}, '{3}', {4})", (int)bidOffer, Math.Round(Price, 2), DataBaseHandler.UserID, StockName, Quantity)); this.Frame.Navigate(typeof(Pages.User.Portfolio)); break; case BidOffer.offer: int QuantityOwned = DataBaseHandler.GetCount("SELECT SUM(Quantity) From Inventories WHERE StockName = '" + StockName + "' AND UserID = " + DataBaseHandler.UserID); int AlreadySelling = DataBaseHandler.GetCount("SELECT SUM(Quantity) FROM Pool WHERE Type = 1 AND User = "******" AND StockName = '" + StockName + "'"); int CanSell = QuantityOwned - AlreadySelling; if (Quantity > CanSell) { Quantity = CanSell; } QuantityBox.Text = Quantity.ToString(); DataBaseHandler.SetData(string.Format("INSERT INTO Pool (Type, Price, User, StockName, Quantity) VALUES ({0}, {1}, {2}, '{3}', {4})", (int)bidOffer, Math.Round(Price, 2), DataBaseHandler.UserID, StockName, Quantity)); this.Frame.Navigate(typeof(Pages.User.Portfolio)); break; } } else { MessageDialog message = new MessageDialog("Quantity is not valid"); await message.ShowAsync(); return; } }
private void LoadBalance() { double Balance = DataBaseHandler.GetCountDouble("SELECT SUM(Balance) FROM Users WHERE ID = " + DataBaseHandler.UserID); MySqlDataReader reader = DataBaseHandler.GetData("SELECT Price, Quantity FROM Pool WHERE Type = 0 AND User = "******"Price"] * (int)reader["Quantity"]; } BalanceText.Text = "Balance: $" + Math.Round(Balance, 2); if (Balance < 0) { BalanceText.Foreground = new SolidColorBrush(Colors.Red); } else { BalanceText.Foreground = new SolidColorBrush(Colors.Green); } double FundsAvailable = Balance - MoneyInPool; FundsAvailableText.Text = " Funds Available: $" + Math.Round(FundsAvailable, 2); if (FundsAvailable < 0) { FundsAvailableText.Text = " Funds Available: $0"; FundsAvailableText.Foreground = new SolidColorBrush(Colors.Red); } MySqlDataReader reader2 = DataBaseHandler.GetData("SELECT DISTINCT StockName FROM Inventories WHERE UserID = " + DataBaseHandler.UserID); List <string> StockNames = new List <string>(); while (reader2.Read()) { StockNames.Add((string)reader2["StockName"]); } double InventoryValue = 0.00d; for (int i = 0; i < StockNames.Count; i++) { double CurrentPrice = DataBaseHandler.GetCountDouble("SELECT SUM(CurrentPrice) FROM Stock WHERE StockName = '" + StockNames[i] + "'"); int QuantityOwner = DataBaseHandler.GetCount("SELECT SUM(Quantity) From Inventories WHERE UserID = " + DataBaseHandler.UserID + " AND " + " StockName = '" + StockNames[i] + "'"); InventoryValue += CurrentPrice * (double)QuantityOwner; } InventoryValueText.Text = " Invetory Value: $" + Math.Round(InventoryValue, 2); }
private void LoadInventory() { InventoryList.Items.Clear(); MySqlDataReader reader = DataBaseHandler.GetData("SELECT DISTINCT StockName FROM Inventories WHERE Quantity > 0 AND UserID = " + DataBaseHandler.UserID); List <string> StockNames = new List <string>(); while (reader.Read()) { StockNames.Add((string)reader["StockName"]); } for (int i = 0; i < StockNames.Count; i++) { Console.WriteLine(i); string s = StockNames[i]; string FullName = ""; int QuantityOwned = DataBaseHandler.GetCount("SELECT SUM(Quantity) From Inventories WHERE StockName = '" + s + "' AND UserID = " + DataBaseHandler.UserID); double AverageCost = DataBaseHandler.GetCountDouble("SELECT AVG(LastTradedPrice) From Inventories WHERE StockName = '" + s + "' AND UserID = " + DataBaseHandler.UserID); double CurrentPrice = 0, OpeningPrice = 0, High, Low; MySqlDataReader StockReader = DataBaseHandler.GetData("SELECT * FROM Stock WHERE StockName = '" + s + "'"); while (StockReader.Read()) { FullName = (string)StockReader["FullName"]; CurrentPrice = (double)StockReader["CurrentPrice"]; OpeningPrice = (double)StockReader["OpeningPriceToday"]; High = (double)StockReader["HighToday"]; Low = (double)StockReader["LowToday"]; } double Profit = CurrentPrice - AverageCost; double RealChangeInPrice = CurrentPrice - OpeningPrice; double PercentageChange = RealChangeInPrice / OpeningPrice; StackPanel Panel = new StackPanel(); Panel.Orientation = Orientation.Horizontal; Panel.Children.Add(Helper.CreateTextBlock(s, TextAlignment.Left, 100, 20)); Panel.Children.Add(Helper.CreateTextBlock(FullName, TextAlignment.Left, 250, 20)); Panel.Children.Add(Helper.CreateTextBlock(QuantityOwned.ToString(), TextAlignment.Left, 100, 20)); Panel.Children.Add(Helper.CreateTextBlock(Math.Round(CurrentPrice, 2).ToString(), TextAlignment.Left, 125, 20)); TextBlock RealChangeInPriceBlock = Helper.CreateTextBlock(Math.Round(RealChangeInPrice, 2).ToString(), TextAlignment.Left, 100, 20); if (RealChangeInPrice < 0) { RealChangeInPriceBlock.Foreground = new SolidColorBrush(Colors.Red); } else { RealChangeInPriceBlock.Foreground = new SolidColorBrush(Colors.Green); } Panel.Children.Add(RealChangeInPriceBlock); TextBlock PercentageChangeBlock = Helper.CreateTextBlock(Math.Round(PercentageChange, 2) + "%", TextAlignment.Left, 100, 20); if (RealChangeInPrice < 0) { PercentageChangeBlock.Foreground = new SolidColorBrush(Colors.Red); } else { PercentageChangeBlock.Foreground = new SolidColorBrush(Colors.Green); } Panel.Children.Add(PercentageChangeBlock); Panel.Children.Add(Helper.CreateTextBlock(Math.Round(Profit, 2).ToString(), TextAlignment.Left, 200, 20)); InventoryList.Items.Add(Panel); } }