/// <summary>
        /// מוסיפה את המנה הדרושה לרשימה זמנית במידה והכשרות+גדול נכונים, הרשימה הזמנית תוצג בטופס
        /// תת פונקציה של addDishToOrderClick
        /// </summary>
        /// <param name="tempOrderDish">המנה שברצוננו להוסיף</param>
        private void addOrderDishForList(BE.OrderedDish tempOrderDish)
        {
            try
            {
                Predicate <BE.OrderedDish> ifOrderDishExist = (localOrderDish) => (
                    localOrderDish.dishID == tempOrderDish.dishID &&
                    localOrderDish.dishSize == tempOrderDish.dishSize &&
                    localOrderDish.dishLevelOfKosher == tempOrderDish.dishLevelOfKosher &&
                    localOrderDish.numberOfSameDish == tempOrderDish.numberOfSameDish);

                if (tempList.Exists(ifOrderDishExist))
                {
                    throw new Exception("המנה עם אותה כשרות,גודל וכמות כבר קיימת");
                }
                else
                {
                    tempList.Add(tempOrderDish);
                }

                refresh_addedDishesTable();
            }
            catch (Exception error)
            {
                MessageBox.Show(error.Message);
            }
        }
Beispiel #2
0
        static BE.OrderedDish init_order_dish(uint order_id, uint dish_id, uint number_of_same_dish, BE.Kosher level, BE.SizeOfDish size)
        {
            BE.OrderedDish ordered_dish = new BE.OrderedDish();
            ordered_dish.orderId           = order_id;
            ordered_dish.dishID            = dish_id;
            ordered_dish.numberOfSameDish  = number_of_same_dish;
            ordered_dish.dishLevelOfKosher = level;
            ordered_dish.dishSize          = size;

            return(ordered_dish);
        }
Beispiel #3
0
 /// <summary>
 /// בודק האם המנה שרוצים להוסיף תקינה מבחינת כשרות וגודל
 /// </summary>
 /// <param name="newOrderDish">המנה שרוצים להוסיף</param>
 /// <param name="currentDishSize">גודל המנה שקיים במערכת</param>
 /// <param name="currentDishKosher">רמת הכשרות הקיימת במערכת</param>
 public void checkKosherSizeLevel(BE.OrderedDish newOrderDish, BE.SizeOfDish currentDishSize, BE.Kosher currentDishKosher)
 {
     try
     {
         checkKosherLevel(newOrderDish.dishLevelOfKosher, currentDishKosher);
         checkSizeLevel(newOrderDish.dishSize, currentDishSize);
     }
     catch (Exception)
     {
         throw;
     }
 }
Beispiel #4
0
        /// <summary>
        /// הוספת מנה להזמנה קיימת או להזמנה חדשה
        /// </summary>
        /// <param name="l"></param>
        public void addOrderedDish(BE.OrderedDish new_ordered_dish)
        {
            // checkKosherLevel(new_ordered_dish);

            try
            {
                myDal.addOrderedDish(new_ordered_dish);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #5
0
        private void clickOnTableForUpdate(object sender, MouseButtonEventArgs e)
        {
            BE.Order       order     = new BE.Order();
            BE.OrderedDish orderDish = new BE.OrderedDish();
            order = (BE.Order)(orderDataGrid.SelectedItem);

            Window AddOrderWindows = new addOrderWindows(order.orderId);

            (AddOrderWindows as addOrderWindows).refresh += refreshTable;//


            AddOrderWindows.Show();
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            BL.IBL myBl = BL.FactoryBL.getBL();

            BE.Branch      branch      = new BE.Branch();
            BE.Client      client      = new BE.Client();
            BE.Dish        dish        = new BE.Dish();
            BE.Order       order       = new BE.Order();
            BE.OrderedDish orderedDish = new BE.OrderedDish();

            Console.WriteLine("Hello, this is a check");
            ConsoleKeyInfo input = new ConsoleKeyInfo();
            int            choice;

            while (true)
            {
                Console.WriteLine("enter your choice:");
                input  = Console.ReadKey();
                choice = int.Parse(input.KeyChar.ToString());

                switch (choice)
                {
                case 0:
                    break;

                case 3:
                    try
                    {
                        branch = init_branch(10, "g. mordechai", "vaad leumi", 123, "moshe", 12, 20, BE.Kosher.GLAT);
                        order  = init_order(1, DateTime.Now, 2, 3, false);
                        myBl.addOrder(order);
                        orderedDish = init_order_dish(1, 2, 3, BE.Kosher.GLAT, BE.SizeOfDish.LARGE);
                        myBl.addOrderedDish(orderedDish, order, branch);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                    break;

                default:
                    Console.WriteLine("error");
                    break;
                }
            }
        }
        /// <summary>
        /// בעת לחיצה על מחיקה, הפונקציה תמחק את כל המנות שהמשתמש בחר
        /// בנוסף,תדאג לעדכן את שדה המחיר
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void orderDishDelete_Click(object sender, RoutedEventArgs e)
        {
            var cellInfos = addedDishes.SelectedItems;
            int count     = addedDishes.SelectedItems.Count;

            for (int i = 0; i < count; i++)
            {
                BE.OrderedDish d = (BE.OrderedDish)addedDishes.SelectedItems[i];
                tempList.RemoveAll(orderDish =>
                                   orderDish.dishID == d.dishID &&
                                   orderDish.dishSize == d.dishSize &&
                                   orderDish.dishLevelOfKosher == d.dishLevelOfKosher &&
                                   orderDish.numberOfSameDish == d.numberOfSameDish);
                updatePriceTextBox(mybl.calculatePrice(mybl.getDishById(d.dishID).priceOfSingleDish, d.numberOfSameDish), -1); //שליחה לפונקציה שתעדכן את המחיר בשדה המחיר
            }
            refresh_addedDishesTable();                                                                                        //עדכון טבלת המנות המוזמנות הזמנית
        }
        /// <summary>
        ///  בניית האובייקט "מנה מוזמנת" על פי הנתונים שהמשתמש הזין
        /// </summary>
        /// <param name="tempOrderDish">האובייקט מנה מוזמנת אותו נעדכן</param>
        /// <param name="dishId">מספר המנה </param>
        private void buildOrderDish(BE.OrderedDish tempOrderDish, uint dishId)
        {
            try
            {
                tempOrderDish.dishID            = dishId;
                tempOrderDish.dishLevelOfKosher = (BE.Kosher)listKosherCombobox.SelectedItem;
                tempOrderDish.numberOfSameDish  = uint.Parse(numberSameDishNumUpDown.textNumber.Text);

                tempOrderDish.dishSize = (BE.SizeOfDish)listSizeCombobox.SelectedItem;

                tempOrderDish.dishID = mybl.getDishByName(listDishCombobox.SelectedItem.ToString()).dishID;
            }
            catch (Exception)
            {
                throw new Exception("אנא מלא את כל השדות");
            }
        }
        /// <summary>
        /// הפונקציה תוסיף אובייקט "מנסה מוזמנת" לרשימה זמנית של כל המנות המוזמנות, ותציג אותה בטבלה המתאימה
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addDishToOrderClick(object sender, RoutedEventArgs e)
        {
            try
            {
                BE.OrderedDish tempOrderDish = new BE.OrderedDish();                                         //object to build the new orderDish accoring to his inseret
                BE.Dish        tempDish      = mybl.getDishByName(listDishCombobox.SelectedItem.ToString()); //get the object dish according to name


                buildOrderDish(tempOrderDish, tempDish.dishID);                                                                                     // build the temp order dish according to the form
                mybl.checkKosherSizeLevel(tempOrderDish, tempDish.dishSize, tempDish.dishLevelOfKosher);                                            //check kosher& size for the new dish
                double addedPriceUpdate = mybl.calculatePrice(mybl.getDishById(tempDish.dishID).priceOfSingleDish, tempOrderDish.numberOfSameDish); //חישוב מחיר המנה שהתווסף
                mybl.maxOrderPayment(double.Parse(totalPrice.Text) + addedPriceUpdate);                                                             //בדיקה האם המחיר שהיה +החדש גבוה מידי
                updatePriceTextBox(addedPriceUpdate);                                                                                               // update the price on the correct text
                addOrderDishForList(tempOrderDish);                                                                                                 //add the order dish to the temp list , to show on the table
                refresh_addedDishesTable();                                                                                                         // refresh the table that show all the dish
            }
            catch (Exception error)
            {
                MessageBox.Show(error.Message);
            }
        }