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);
            }
        }
Exemple #4
0
        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);
            }
        }
Exemple #7
0
        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;
                }
            }
        }