private void AddNewStock() { Stocks.Add(NewStock); NewStock.ValidateAll(); BondQuantity = Stocks.Count(p => p.StockType == StockType.BondTypeName); EquityQuantity = Stocks.Count(p => p.StockType == StockType.EquityTypeName); TotalBondMarketValue = Stocks.Where(p => p.StockType == StockType.BondTypeName).Sum(s => s.MarketValue ?? 0); TotalEquityMarketValue = Stocks.Where(p => p.StockType == StockType.EquityTypeName).Sum(s => s.MarketValue ?? 0); TotalBondWeight = Stocks.Where(p => p.StockType == StockType.BondTypeName).Sum(s => s.StockWeight ?? 0); TotalEquityWeight = Stocks.Where(p => p.StockType == StockType.EquityTypeName).Sum(s => s.StockWeight ?? 0); TotalQuantity = Stocks.Count; TotalMarketValue = Stocks.Sum(s => s.MarketValue ?? 0); TotalWeight = Stocks.Sum(s => s.StockWeight ?? 0); NewStock.Model.Notify("StockTypeQuantity", NewStock.Model.StockType == StockType.BondTypeName ? BondQuantity : EquityQuantity); ClearStockData(); }
public async Task ExecuteLoadElementsCommand() { Products = await DataStore.GetProductsAsync(); decimal totalCostAccumulator = 0; decimal totalRetailValueAccumulator = 0; decimal phoneStocksCostAccumulator = 0; decimal accessoryStocksCostAccumulator = 0; int phoneStockCounter = 0; int AccessoryStockCounter = 0; Stocks = await StoreDataStore.GetStoreStocksAsync(App.currentStore.StoreId, true); foreach (Stock stock in Stocks) { Product product = Products.FirstOrDefault(x => x.Id == stock.ProductId); totalCostAccumulator += (product.Cost * stock.Quantity); totalRetailValueAccumulator += (product.Cost * stock.Quantity); if (product.ProductType.ToLower() == "phone") { phoneStockCounter += stock.Quantity; phoneStocksCostAccumulator += (product.Cost * stock.Quantity); } else { AccessoryStockCounter += stock.Quantity; accessoryStocksCostAccumulator += (product.Cost * stock.Quantity); } } StoreTotalStockCost = Stocks.Count().ToString(); StorePhoneStocksCount = phoneStockCounter.ToString(); StoreAccessoryStocksCount = AccessoryStockCounter.ToString(); StoreStocksTotalRetailValue = totalRetailValueAccumulator.ToString(); StoreTotalPhoneStocksCost = phoneStocksCostAccumulator.ToString(); StoreTotalAccessoryStocksCost = accessoryStocksCostAccumulator.ToString(); }
/// <summary> /// Method to add stocks to the collection /// </summary> /// <param name="obj"></param> private void AddStock(object obj) { if (Price == null) { return; } if (Price == null) { return; } if (Stocks == null) { Stocks = new ObservableCollection <Stock>(); } try { string name = $"{StockType.ToString()}{Stocks.Where(x => x.StockType == stockType).Count() + 1}"; Stocks.Add(new Stock() { StockType = this.StockType, Name = name, Price = (float)this.Price, Quantity = (float)this.Quantity }); UpdateEquitySummary(); UpdateBondSummary(); TotalMarketValue = Stocks.Select(x => x.MarketValue).Sum(); TotalNumberOfStocks = Stocks.Count(); TotalStockWeight = Stocks.Select(x => x.StockWeight).Sum(); UpdateStockWeight(); OnPropertyChanged("Stocks"); } catch (Exception ex) { Debug.WriteLine($"Exception - AddStock, Details : {ex.Message}"); } }