public override ITransaction ToTransaction(IBarcodeSystemManager barcodeSystemManager) { IUser user = barcodeSystemManager.GetUserByUsername(Username); IProduct product = barcodeSystemManager.GetProductById(productId); return(new BuyTransaction(Id, user, product, Date, count)); }
private void BuyProduct(string username, string productIdString, uint count) { if (!uint.TryParse(productIdString, out uint productId)) { systemUI.DisplayProductNotFound(productIdString); return; } if (count < 1) { systemUI.DisplayError($"Invalid product count: {count}."); return; } try { IUser user = systemManager.GetUserByUsername(username); IProduct product = systemManager.GetProductById(productId); systemManager.BuyProduct(user, product, count); systemUI.DisplayUserBuysProduct(user, product, count); } catch (Exception e) { systemUI.DisplayError(e.Message); }; }
protected IProduct GetProduct(string productIdString, IBarcodeSystemUI systemUI, IBarcodeSystemManager systemManager) { if (!uint.TryParse(productIdString, out uint productId)) { systemUI.DisplayProductNotFound(productIdString); return(null); } return(systemManager.GetProductById(productId)); }
public void Execute(string[] args, IBarcodeSystemUI systemUI, IBarcodeSystemManager systemManager) { uint productId = uint.Parse(args[0]); product = systemManager.GetProductById(productId); if (canBeBoughtOnCredit == product.CanBeBoughtOnCredit) { output = canBeBoughtOnCredit ? $"Product {product.Name} can already be bought on credit!" : $"Product {product.Name} already cannot be bought on credit!"; } else { output = canBeBoughtOnCredit ? $"Product {product.Name} can now be bought on credit." : $"Product {product.Name} can no longer be bought on credit."; product.CanBeBoughtOnCredit = canBeBoughtOnCredit; } }