Esempio n. 1
0
        public string GenerateMealOrder(MealOrder mealOrder)
        {
            if (mealOrder == null || (mealOrder.Breakfasts == null && mealOrder.Lunch == null && mealOrder.Dinner == null) || string.IsNullOrEmpty(mealOrder.BedNumber) || mealOrder.PatientAreaId < 1)
            {
                throw new Exception("订餐信息不全,订单生成失败");
            }
            mealOrder.OrderAffectDay  = DateTime.Now.AddDays(1).Date.ToString("yyy-MM-dd");
            mealOrder.OrderOperatorId = _cache.Get <long>(SessionConstant.USER_ID);
            mealOrder.ReceiptNumber   = DateTime.Now.ToFileTime().ToString().Substring(12, 6);

            var orderId = _GenerateOrder(mealOrder);

            foreach (var item in mealOrder.Breakfasts)
            {
                _GenerateMealOrder(item, orderId);
            }
            if (mealOrder.Lunch != null)
            {
                _GenerateMealOrder(mealOrder.Lunch, orderId);
            }
            if (mealOrder.Dinner != null)
            {
                _GenerateMealOrder(mealOrder.Dinner, orderId);
            }

            return(mealOrder.ReceiptNumber);
        }
Esempio n. 2
0
        private long _GenerateOrder(MealOrder mealOrder)
        {
            var sql        = "INSERT INTO `order` VALUES(NULL,@bed_number,@patient_area_id,@order_operator_id,@device_type_id,now(),@payment_method_id,@order_affect_day,@receipt_number);SELECT LAST_INSERT_ID();";
            var parameters = new Parameter[]
            {
                new Parameter("@bed_number", mealOrder.BedNumber),
                new Parameter("@patient_area_id", mealOrder.PatientAreaId),
                new Parameter("@order_operator_id", mealOrder.OrderOperatorId),
                new Parameter("@device_type_id", mealOrder.DeviceTypeId),
                new Parameter("@payment_method_id", mealOrder.PaymentMethodId),
                new Parameter("@order_affect_day", mealOrder.OrderAffectDay),
                new Parameter("@receipt_number", mealOrder.ReceiptNumber)
            };

            return(DBHelper.ExecuteDataReader <long>(sql, parameters, (reader) =>
            {
                long id = -1;
                if (reader.Read())
                {
                    id = reader.GetInt32("LAST_INSERT_ID()");
                }

                return id;
            }));
        }
Esempio n. 3
0
    protected void DisplayReceipt()
    {
        //the stringbuilder is an object that
        //allows you to build complex strings
        //It is easier than concatinating
        StringBuilder sb = new StringBuilder();
        //get the MealOrder class from the session
        //it has to be cast from type "object"
        MealOrder meal = (MealOrder)Session["Meal"];
        //copy the lists from the object
        List <string> entrees = meal.Entrees;
        List <string> drinks  = meal.Drinks;

        //loop through to get the values
        foreach (string entree in entrees)
        {
            sb.Append(entree);
            sb.Append("<br/>");
        }
        foreach (string drink in drinks)
        {
            sb.Append(drink);
            sb.Append("<br/>");
        }
        //get the total
        sb.Append(meal.CalculateTotal().ToString());
        //display the string
        Label1.Text = sb.ToString();
    }
Esempio n. 4
0
        public void FromFullKitchenAndFullFridgePlaceZeroOrders()
        {
            Fridge currentFridge = new Fridge();

            currentFridge.AddIngredientToFridge("VeggieSausage", 5);
            currentFridge.AddIngredientToFridge("Cream", 2.5);
            currentFridge.AddIngredientToFridge("Tomato puree", 22);

            Kitchen currentKitchen = new Kitchen(currentFridge);

            Recipe newRecipe = new Recipe();

            newRecipe.Name      = "SausageStroganoffVeggie";
            newRecipe.Available = true;
            newRecipe.IngredientsAndQuantity.Add(new KeyValuePair <string, double>("VeggieSausage", 1));
            newRecipe.IngredientsAndQuantity.Add(new KeyValuePair <string, double>("Cream", 2.5));
            newRecipe.IngredientsAndQuantity.Add(new KeyValuePair <string, double>("Tomato puree", 2));
            currentKitchen.AddRecipe(newRecipe);

            Order            currentOrder = new Order(currentKitchen);
            List <MealOrder> mealOrders   = new List <MealOrder>();

            MealOrder mealOrder = new MealOrder();

            mealOrder.MealName  = "SausageStroganoffVeggie";
            mealOrder.NoOfMeals = 0;
            mealOrders.Add(mealOrder);

            List <OrderInfo> result = currentOrder.PlaceOrder(mealOrders);

            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(0, result[0].NoOfMeals);
            Assert.AreEqual(false, result[0].OkFromKitchen);
        }
Esempio n. 5
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,MealId,OrderId,MealCount")] MealOrder mealOrder)
        {
            if (id != mealOrder.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(mealOrder);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MealOrderExists(mealOrder.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MealId"]  = new SelectList(_context.Meal, "Id", "MealName", mealOrder.MealId);
            ViewData["OrderId"] = new SelectList(_context.Orders, "Id", "Id", mealOrder.OrderId);
            return(View(mealOrder));
        }
 public void GivenCustomerHasArrivedToRestaurant()
 {
     _scenarioOrder = new MealOrder
     {
         Status  = Status.CustomerArrived,
         Version = RestaurantOrderWorkflowDefault.VersionKeyString
     };
 }
Esempio n. 7
0
 public IRestaurantOrderWorkflow GetWorkflow(MealOrder order, IRules rules)
 {
     // Refactor away from "locator" pattern
     // http://docs.autofac.org/en/latest/best-practices/
     return(_scope
            .ResolveNamed <IRestaurantOrderWorkflow>(order.Version,
                                                     new[] {
         new NamedParameter(orderParamName, order.ToStateObject <Status>()),
         new NamedParameter(rulesParamName, rules)
     }));
 }
Esempio n. 8
0
        private Booking MapBookingExtToBooking(BookingExt bookingExt, List <int> productIds)
        {
            try
            {
                var contacts = AddContactsToBooking(bookingExt);
                if (contacts == null)
                {
                    return(null);
                }

                var room = AddRoomToBooking(bookingExt);
                if (room == null)
                {
                    return(null);
                }

                var bookingFinal = new Booking()
                {
                    Title       = bookingExt.Title,
                    Description = bookingExt.Description,
                    StartDate   = bookingExt.StartDate,
                    EndDate     = bookingExt.EndDate,
                    StartTime   = bookingExt.StartTime,
                    EndTime     = bookingExt.EndTime,
                    Host        = "Jimmie Rindal",
                    Contacts    = contacts,
                    Room        = room
                };

                if (bookingExt.MealOrderWanted)
                {
                    var refreshments = AddRefreshmentsToMealOrder(productIds);
                    var mealOrder    = new MealOrder()
                    {
                        Booking = bookingFinal,
                        NumberOfDiningGuests   = bookingFinal.Contacts.Count(),
                        DepartmentCharged      = "Department",
                        DepartmentCreditNumber = "000000",
                        DishWishServedAt       = DateTime.Now,
                        Refreshments           = refreshments,
                        TotalPrice             = refreshments.Sum(r => r.Product.Price), //TODO check
                        Contact = db.Contacts.FirstOrDefault()                           //TODO get profile from session
                    };

                    bookingFinal.MealOrder = mealOrder;
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(null);
        }
Esempio n. 9
0
        public IActionResult Select(int id)
        {
            // Uses LINQ and a Lambda Expression

            Dish dish = menu.GetDishes().FirstOrDefault(d => d.ID == id);

            MealOrder meal = new MealOrder();

            meal.Starter = dish;

            return(RedirectToAction("Index"));
        }
Esempio n. 10
0
        public async Task <IActionResult> Create([Bind("Id,MealId,OrderId,MealCount")] MealOrder mealOrder)
        {
            if (ModelState.IsValid)
            {
                _context.Add(mealOrder);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MealId"]  = new SelectList(_context.Meal, "Id", "MealName", mealOrder.MealId);
            ViewData["OrderId"] = new SelectList(_context.Orders, "Id", "Id", mealOrder.OrderId);
            return(View(mealOrder));
        }
Esempio n. 11
0
        public async Task <IActionResult> AddMealToOrder([FromBody] AddMealOrderModel model)
        {
            var order = await _context.Orders.FirstOrDefaultAsync(o => o.Id == model.OrderId);

            if (order == null)
            {
                return(NotFound(new { status = "error", message = "Заказ не был найден" }));
            }
            if (GetUserId() != order.UserId)
            {
                return(BadRequest(new { staus = "error", message = "Вы можете добавлять блюда только в свои заказы" }));
            }
            foreach (var item in model.MealOrders)
            {
                if (MealIsNull(item.MealId))
                {
                    return(NotFound(new { status = "error", message = "Блюдо не было найдено в базе данных" }));
                }
                var mealOrder = _context.MealOrders.FirstOrDefault(mo => mo.OrderId == order.Id && mo.MealId == item.MealId);
                if (mealOrder == null)
                {
                    var mo = new MealOrder
                    {
                        OrderId          = order.Id,
                        MealId           = item.MealId,
                        OrderedQuantity  = item.AddQuantity,
                        FinishedQuantity = 0,
                        MealOrderStatus  = MealOrderStatus.NotReady
                    };
                    _context.MealOrders.Add(mo);
                }
                else
                {
                    mealOrder.OrderedQuantity += item.AddQuantity;
                    mealOrder.MealOrderStatus  = MealOrderStatus.NotReady;
                }
            }
            order.DateTimeOrdered       = DateTime.Now;
            order.OrderStatus           = OrderStatus.Active;
            _context.Entry(order).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(Ok(new { status = "success", message = "Блюда были добавлены в заказ" }));
        }
Esempio n. 12
0
    public static void CreateOrder(GameObject ui, int countative = 1,
                                   GameObject _meal = null, string adress = "ananin amina", float time = 50, float Distance = 200, Segmentation.CustomerSegmentation segmentasyon = Segmentation.CustomerSegmentation.families)
    {
        MealOrder mealOrder = new MealOrder()
        {
            meal                 = _meal,
            price                = _meal.GetComponent <Meal>().price,
            adress               = adress,
            totalTime            = time,
            uiPrefab             = ui,
            Count                = countative,
            DistanceTime         = Distance,
            CustomerSegmentation = segmentasyon
        };

        orders.Add(mealOrder);
        mealOrder.Initialize();
        Instantiate(orderAlarm, GameObject.Find("Canvas").transform);
    }
        public void PlaceOrder(DayOfWeek DayOfTheWeek, string userId, ICollection <int> mealIds)
        {
            Order order = new Order();

            order.DayOfWeek = DayOfTheWeek;
            order.UserId    = userId;

            this.databaseCtx.Add(order);
            this.databaseCtx.SaveChanges();
            int orderId = this.databaseCtx.Orders.Max(i => i.Id);

            foreach (var mealId in mealIds)
            {
                MealOrder mealOrder = new MealOrder();
                mealOrder.MealId  = mealId;
                mealOrder.OrderId = orderId;
                this.databaseCtx.Add(mealOrder);
                this.databaseCtx.SaveChanges();
            }
        }
Esempio n. 14
0
    protected void DisplayReceipt()
    {
        StringBuilder sb      = new StringBuilder();
        MealOrder     meal    = (MealOrder)Session["Meal"];
        List <string> entrees = meal.Entrees;
        List <string> drinks  = meal.Drinks;

        foreach (string entree in entrees)
        {
            sb.Append(entree);
            sb.Append("<br/>");
        }
        foreach (string drink in drinks)
        {
            sb.Append(drink);
            sb.Append("<br/>");
        }
        sb.Append(meal.CalculateTotal().ToString());
        Label1.Text = sb.ToString();
    }
Esempio n. 15
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        MealOrder meal = new MealOrder();

        foreach (ListItem item in CBLSizes.Items)
        {
            if (item.Selected)
            {
                meal.AddSizes(item.Text);
            }
        }//end of entree foreach
        foreach (ListItem item in CBLToppings.Items)
        {
            if (item.Selected)
            {
                meal.AddToppings(item.Text);
            }
        }//end of drink foreach
        Session["Meal"] = meal;
        Response.Redirect("Receipt.aspx");
    }//end of button
    protected void Button1_Click(object sender, EventArgs e)
    {
        MealOrder meal = new MealOrder();

        foreach (ListItem item in CBLEntree.Items)
        {
            if (item.Selected)
            {
                meal.AddEntree(item.Text);
            }
        }//end of foreach
        foreach (ListItem item in CBLDrinks.Items)
        {
            if (item.Selected)
            {
                meal.AddDrink(item.Text);
            }
        }//end of foreach
        Session["Meal"] = meal;
        Response.Redirect("Receipt.aspx");
    }//end of button
Esempio n. 17
0
        public ActionResult COnfirmOrder()
        {
            var UserName = User.Identity.GetUserName();

            ViewBag.Total    = cart_Service.GetCartTotal(cart_Service.GetCartID());
            ViewBag.TotalQTY = cart_Service.GetCartItems().FindAll(x => x.cart_id == cart_Service.GetCartID()).Sum(q => q.quantity);
            var confirm = db.FoodOrders.ToList();
            var cart    = db.Cart_Items.ToList();

            MealOrder mealOrder = new MealOrder();

            mealOrder.OrderNumber = mealOrder.GenVoucher();
            mealOrder.Total       = ViewBag.Total;
            mealOrder.UserOrder   = UserName;
            mealOrder.Status      = "Paid";
            mealOrder.OrderDate   = DateTime.Now.Date.ToLongDateString();
            db.MealOrders.Add(mealOrder);
            db.SaveChanges();

            FoodOrder foodOrder = new FoodOrder();

            foreach (var item in confirm)
            {
                foreach (var i in cart)
                {
                    if (UserName == item.UserEmail && item.cart_id == i.cart_id)
                    {
                        var statusUpdate = db.FoodOrders.Find(item.cart_item_id);
                        statusUpdate.OrderStatus     = "Checked Out";
                        statusUpdate.OrderId         = mealOrder.OrderId;
                        db.Entry(statusUpdate).State = EntityState.Modified;
                        db.SaveChanges();
                        cart_Service.EmptyCart();
                    }
                }
            }

            return(RedirectToAction("OnceOff", new { tot = mealOrder.Total }));
        }
Esempio n. 18
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        //declare an instance of the mealorder
        MealOrder meal = new MealOrder();

        //add the checked meaks to the meal list in the class
        foreach (ListItem item in CBLEntree.Items)
        {
            if (item.Selected)
            {
                meal.AddEntree(item.Text);
            }
        }//end of foreach
        //add the drinks
        foreach (ListItem item in CBLDrinks.Items)
        {
            if (item.Selected)
            {
                meal.AddDrink(item.Text);
            }
        }//end of foreach
        Session["Meal"] = meal;
        Response.Redirect("Receipt.aspx");
    }//end of the button
    protected void DisplayReceipt()
    {
        StringBuilder sb       = new StringBuilder();
        MealOrder     meal     = (MealOrder)Session["Meal"];
        List <string> sizes    = meal.Sizes;
        List <string> toppings = meal.Toppings;

        sb.Append("<br/>Pies<br/>");
        foreach (string size in sizes)
        {
            sb.Append(size);
            sb.Append("<br/>");
        }
        sb.Append("<br/>Toppings<br/>");
        foreach (string topping in toppings)
        {
            sb.Append(topping);
            sb.Append("<br/>");
        }
        sb.Append("<br/>Total");
        sb.Append("<br/>");
        sb.Append(meal.Calculatetotal().ToString());
        Label1.Text = sb.ToString();
    }
Esempio n. 20
0
 public MealReturnControllerTest()
 {
     _mealOrderTest = new MealOrder();
 }
 public MealApplicationTests()
 {
     _mealOrderTest = new MealOrder();
 }
 public async Task AddMealOrder(AddMealOrderDto input)  //add meal order
 {
     var mealOrder = MealOrder.Create(input.Quantity, input.MealId, input.OrderId);
     await _mealOrderRepo.AddAsync(mealOrder);
 }
Esempio n. 23
0
        public ActionResult GenerateMealOrder(MealOrder mealOrder)
        {
            var receiptNumber = _orderLogic.GenerateMealOrder(mealOrder);

            return(Json(new { ReceiptNumber = receiptNumber }));
        }
 public void Remove(MealOrder mealOrder)
 {
     context.Remove(mealOrder);
 }
 public void Add(MealOrder mealOrder)
 {
     context.MealOrder.Add(mealOrder);
 }