예제 #1
0
 public UnitOfWork(KekContext context)
 {
     _context = context;
     Cookers  = new CookerRepository(_context);
     Orders   = new OrderRepository(_context);
     Sushies  = new SushiRepository(_context);
 }
        static void Main(string[] args)
        {
            MyLog.directory.Create();

            MyLog.Logs("Started");

            try
            {
                SushiRepository sushiRepository = new SushiRepository();
                sushiRepository = Menu.MenuMaker(sushiRepository);
                MyLog.Logs("Menu.MenuMaker done!");

                OrdersRepo orders = new OrdersRepo();

                do
                {
                    MyLog.Logs("orders.AddOrder started!");
                    orders.AddOrder(MakeNewOrder(sushiRepository));
                    MyLog.Logs("orders.AddOrder finished!");

                    Console.WriteLine("Press 'ENTER' if you need add one more order or anything else if not");
                }while (Console.ReadKey(true).Key == ConsoleKey.Enter);
            }
            catch (Exception ex)
            {
                MyLog.Logs($"Something wrong!\n{ex.Message}\n{ex.StackTrace}");
            }

            MyLog.Logs("Order finished!");

            Console.Read();
        }
        public bool AnythingElse(SushiRepository sushis)
        {
            Console.WriteLine("Enything else?\nPress 'ESCAPE' if not\nPress 'DELETE' if you want to delete sushi from your order" +
                              "\nPress 'SPACE' to change amount of sushi in the order\nPress anything else if you whoud like add more sushi to the order.");

            if (Console.ReadKey(true).Key == ConsoleKey.Spacebar)
            {
                try
                {
                    Console.WriteLine("Enter the ID number of sushi which you whoud like to change + press 'ENTER'.");
                    int id = Convert.ToInt32(Console.ReadLine());

                    orderRepository.UpdateSushiInOrder(id, sushis);
                    orderRepository.GetSushisInOrder();
                    Console.WriteLine("The order price is {0: 0.00}", SumCounter(orderRepository));

                    return(false);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Incorrect data entry \nYou must enter the ID number of kind of sushi");

                    MyLog.Logs($"Entered invalid sushi ID! Repiting going!\n{ex.Message}\n{ex.StackTrace}");

                    return(false);
                }
            }
            else if (Console.ReadKey(true).Key == ConsoleKey.Escape)
            {
                return(false);
            }
            else if (Console.ReadKey(true).Key == ConsoleKey.Delete)
            {
                try
                {
                    Console.WriteLine("Enter the ID number of sushi which you whoud like to delete + press 'ENTER'.");
                    int id = Convert.ToInt32(Console.ReadLine());

                    orderRepository.DeleteSushiFromOrder(id);
                    orderRepository.GetSushisInOrder();
                    Console.WriteLine("The order price is {0: 0.00}", SumCounter(orderRepository));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Incorrect data entry \nYou must enter the ID number of kind of sushi");

                    MyLog.Logs($"Entered invalid sushi ID! Repiting going!\n{ex.Message}\n{ex.StackTrace}");

                    return(false);
                }
            }

            return(true);
        }
        public OrderMakeRepository MakeOrder(SushiRepository sushis)
        {
            Speak.Hello();
            Speak.OllSushi(sushis);

            do
            {
                do
                {
                    try
                    {
                        AddSushiOrNothing(sushis);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("You must enter the ID number of kind of sushi");

                        MyLog.Logs($"Entered invalid sushi ID! Repiting going!\n{ex.Message}\n{ex.StackTrace}");

                        continue;
                    }


                    orderRepository.GetSushisInOrder();
                    Console.WriteLine("The order price is {0: 0.00}", SumCounter(orderRepository));

                    if (AnythingElse(sushis))
                    {
                        continue;
                    }

                    break;
                }while (true);

                Console.WriteLine("Whoud you like to finish your order ?\nPress 'ENTER' if yes or anything else if not");

                if (Console.ReadKey(true).Key == ConsoleKey.Enter)
                {
                    orderRepository.GetSushisInOrder();
                    Console.WriteLine("The order price is {0: 0.00}", SumCounter(orderRepository));
                    break;
                }
            }while (true);

            return(orderRepository);
        }
        public void AddSushiOrNothing(SushiRepository sushis)
        {
            Console.WriteLine("Which sushi whoud you like to order?" +
                              "\nEnter the ID number + press 'ENTER' to add sushi \nPress 'ESCAPE' if you whoudn't add anything.");

            if (Console.ReadKey(true).Key != ConsoleKey.Escape)
            {
                int idSushiToOrder = Convert.ToInt32(Console.ReadLine());

                Sushi sushi     = sushis.GetSushiById(idSushiToOrder);
                Sushi tempSushi = new Sushi(sushi.Name, sushi.Weight, sushi.Cost, sushi.Things, sushi.HalfOrFull);
                tempSushi.Id = idSushiToOrder;

                MyLog.Logs("orderRepository.AddSushiInOrder started");

                orderRepository.AddSushiInOrder(tempSushi);
            }
        }
        static Order MakeNewOrder(SushiRepository sushiRepository)
        {
            OrderMaker newOrder = new OrderMaker();

            MyLog.Logs("newOrder.MakeOrder started!");

            newOrder.MakeOrder(sushiRepository);
            MyLog.Logs("newOrder.MakeOrder finished, newOrder.OrderBuilder started!");

            Order order = newOrder.OrderBuilder(newOrder.orderRepository);

            MyLog.Logs("newOrder.OrderBuilder finished!");

            newOrder.OrderIsMakedEvent += (string name) => { Console.WriteLine($"{name}, your order is maked!"); };

            MyLog.Logs("newOrder.IsMaked started!");
            newOrder.IsMaked(order, 10);

            return(order);
        }
예제 #7
0
        public void UpdateSushiInOrder(int id, SushiRepository sushis)
        {
            try
            {
                var sushi = sushiOrder.SingleOrDefault(item => item.Id == id);

                if (sushi == null)
                {
                    throw new NullReferenceException();
                }

                Sushi baseSushi = sushis.GetSushiById(sushi.Id);
                Sushi tempSushi = new Sushi(baseSushi.Name, baseSushi.Weight, baseSushi.Cost, baseSushi.Things, baseSushi.HalfOrFull);
                tempSushi.Id = sushi.Id;

                AddSushiInOrder(tempSushi);
            }
            catch (Exception ex)
            {
                Console.WriteLine("You don't have eny sushi whith this name in order!");

                MyLog.Logs($"Entered invalid sushi ID! Repiting going!\n{ex.Message}\n{ex.StackTrace}");
            }
        }
예제 #8
0
 public static void OllSushi(SushiRepository sushis)
 {
     Console.WriteLine($"Here is our menu:");
     sushis.GetSushis();
 }