public bool OnCheckPay(object source, EventArgs e) { LittleGuy littleGuy = (LittleGuy)source; List <string> compareList = new List <string>() { }; foreach (Product product in littleGuy.Cart.Products) { compareList.Add(product.Name); } bool Done = false; foreach (string item in allowed) { if (!compareList.Contains(item)) { Done = true; } } if (Done) { Console.WriteLine("FALTAN PRODUCTOS!!!!11111!!"); Thread.Sleep(3000); return(false); } return(true); }
public void OnAddProduct(object source, EventProduct e) { LittleGuy littleGuy = (LittleGuy)source; foreach (Product product in littleGuy.ShopList) { if (product.Name == e.Product.Name) { if (product.Stock == 0) { littleGuy.RemoveProduct(e.Product); Console.WriteLine("Producto no permitido"); Thread.Sleep(3000); } else { int cont = 0; foreach (Product cartProduct in littleGuy.Cart.Products) { if (cartProduct.Name == e.Product.Name) { cont++; } } if (cont >= 2) { littleGuy.RemoveProduct(e.Product); Console.WriteLine("Producto repetido"); Thread.Sleep(3000); } } } } }
public bool CheckS(List <Product> L, LittleGuy pherb) { int Counter = 0; for (int i = 0; i < L.Count; i++) { if (L[i].Stock == 0) { Counter += 0; } else { Counter += 1; } } if (Counter == 0) { OnCheckSL(); Console.WriteLine("Big sister is satisfied with your selection"); return(true); } else { Console.WriteLine("Big sister is not happy with your cart"); return(false); } }
public void OnLittleGuyTookProduct(object source, LittleGuyProductEventArgs args) { Console.WriteLine("\nBig Sister says: Hey! Estas agregando algo al carrito"); Console.WriteLine($"Big Sister says: Acabas de agregar {args.cart.Products[args.cart.Products.Count - 1].Name}"); Thread.Sleep(3000); Product productoAgregado = args.cart.Products[args.cart.Products.Count - 1]; LittleGuy guy = (LittleGuy)source; List <Product> ShopList = (List <Product>)guy.ShopList; foreach (Product product in ShopList) { if (product.Name == productoAgregado.Name) { Console.WriteLine(product.Stock); if (product.Stock == 1) { product.Stock -= 1; Console.WriteLine("Big Sister says: It is necessary..."); Thread.Sleep(3000); break; } else { guy.RemoveProduct(productoAgregado); Console.WriteLine("Big Sister says: You cant buy that product!"); Thread.Sleep(3000); } } } }
public void OnProductAdded(object source, Product product) // no se si puse algo mal, pero creo que nunca entra a este metodo { // cuando agrrego algo al carro no imprime nada de OnProductAdded Console.WriteLine("Product added"); // no pude solucionarlo. LittleGuy littleGuy = (LittleGuy)source; Console.WriteLine(product.Name); if (recipe.Contains(product.Name)) { Console.WriteLine("consolewriteline test"); items.Add(product); } else { Console.WriteLine("That's not in the list littleguy"); littleGuy.RemoveProduct(product); } }
//3- Publicar el evento: Se define el metodo OnLoggedIn(). Por convencion es protected y virtual. //Evento de RequestChangePassword: Se debe publicar cada vez que se realiza un request para cambiar la contraseña //Este lo definiremos sin delegate, usaremos EventHandler<T> //1- Definir el evento con EventHandler<>, ademas enviaremos la hora en que se solicitó. //1.1- Definiremos una nueva clase llamada RequestEventArgs que tendrá los datos que queremos pasar. Esta hereda de EventArgs //1.2- Se define el evento con la clase recien creada y EventHandler /*public event EventHandler<RequestEventArgs> ChangePasswordRequested; * //3- Publicar el evento: Se define el metodo OnChangePasswordRequested() * * //Evento de ChangingPassword: Se debe publicar cada vez que se realiza un intento para cambiar la contraseña * //Este lo definiremos con delegate ya que necesitamos que retorne bool. Ademas crearemos una clase para ChangingPasswordEventArgs para pasar la contraseña nueva y su confirmación. * //Esta confirmación la revisará una clase aparte que conoce como verificar (esto es simplemente para mostrar eventos). * //1- Definir delegate * public delegate bool ChangingPasswordEventHandler(object source, ChangingPasswordEventArgs args); * //2- Definir el evento en base al delegate anterior * public event ChangingPasswordEventHandler ChangingPassword; * //3- Publicar el evento: Se define el metodo OnChangingPassword() */ public bool CheckP(Product p, LittleGuy pherb) { //Cada vez que se inicie sesion se debe enviar un mail. Console.WriteLine("The Product inserted was: " + p.Name); if (pherb.ShopList.Contains(p)) { if (p.Stock == 1) { OnProductCheck(); return(true); } else { Console.WriteLine("The product added is not part of the shopping list"); Console.WriteLine("Product was not added"); return(false); } } else { Console.WriteLine("The Product is not part of the store"); return(false); } }
public bool OnLittleGuyWantsToPay(object source, LittleGuyProductEventArgs args) { LittleGuy guy = (LittleGuy)source; List <Product> ShopList = (List <Product>)guy.ShopList; bool right = true; foreach (Product product in ShopList) { if (product.Stock == 1) { right = false; break; } } if (right != true) { Console.WriteLine("Big Sister says: You cant exit!"); Thread.Sleep(3000); return(false); } return(true); }
static void Main(string[] args) { LittleGuy littleGuy = new LittleGuy(); Market market = new Market(); BigSister bigSister = new BigSister(); littleGuy.AddedProduct += bigSister.OnAddProduct; littleGuy.CheckPay += bigSister.OnCheckPay; bool continueCycle = true; while (continueCycle) { Console.Clear(); Console.WriteLine("¿Que quieres hacer?\n"); Console.WriteLine("\t1. Ver Receta"); Console.WriteLine("\t2. Comprar"); Console.WriteLine("\t3. Ver carrito"); Console.WriteLine("\t4. Pagar"); Console.WriteLine("\t5. Salir"); String answer = Console.ReadLine(); switch (answer) { case "1": littleGuy.ViewRecipe(); break; case "2": Console.Clear(); Console.WriteLine("¿Que deseas comprar? (-1 para cancelar)\n\n"); for (int i = 0; i < market.Storage.Count; i++) { Console.WriteLine($"[{i}] " + market.Storage[i].ToString() + $"\t Stock:{market.Storage[i].Stock}"); } int index = Convert.ToInt32(Console.ReadLine()); if (index != -1) { if (market.Storage[index].Stock > 0) { littleGuy.AddProduct(market.Storage[index]); market.removeStorage(index); } else { Console.WriteLine("Product sin stock"); } } break; case "3": Console.Clear(); littleGuy.ViewCart(); Console.WriteLine("\n\nPresiona ENTER para volver al supermercado..."); ConsoleKeyInfo response = Console.ReadKey(true); while (response.Key != ConsoleKey.Enter) { response = Console.ReadKey(true); } break; case "4": Console.Clear(); if (littleGuy.Pay()) { littleGuy.SaveData(); market.SaveStorage(); continueCycle = false; } break; case "5": Console.Clear(); littleGuy.SaveData(); market.SaveStorage(); continueCycle = false; break; default: Console.WriteLine("Wrong input"); break; } } }