Exemplo n.º 1
0
        public string SetStatus(int id, int status)
        {
            DbOperator db = new DbOperator();

            db.Session.BeginTransaction();

            Order order = db.Session.Get <Order>(id);

            order.Status = status;
            db.Session.Update(order);

            // Поскольку заказ завершен, обнуляем у его стола текущий заказ
            Table table = db.Session.Get <Table>(order.Table);

            if (table != null)
            {
                table.CurrentOrder = 0;
                db.Session.Update(table);
            }

            db.Session.Transaction.Commit();
            db.Close();

            return(order.StatusDescription);
        }
Exemplo n.º 2
0
        private IList <Person> GetWaitersList()
        {
            DbOperator     db      = new DbOperator();
            IList <Person> waiters =
                db.Session.CreateQuery("FROM Person WHERE Position = :required_position")
                .SetString("required_position", "Официант")
                .List <Person>();

            db.Close();

            return(waiters);
        }
Exemplo n.º 3
0
        // Возвращает данные по заказу из базы
        // А также проставленные ФИО официанта и набор выбранных блюд для вывода
        // Если заказ не найдет, генерирует KeyNotFoundException
        private Order GetExistingOrderWithAdditionalInfo(int id)
        {
            DbOperator db    = new DbOperator();
            Order      order = db.Session.Get <Order>(id);

            if (order == null)
            {
                throw new KeyNotFoundException();
            }
            order.WaiterName = (db.Session.Get <Person>(order.Waiter)).Name;
            db.Close();
            order.MenuDescription = this.GetOrderMenuDescription(order.Menu);

            return(order);
        }
Exemplo n.º 4
0
        public ActionResult Item(Order order)
        {
            if (ModelState.IsValid)
            {
                if (order.Id > 0)
                {
                    // Изменение заказа - просто апдейтим измененные данные
                    (new DbOperatorTyped <Order>()).Save(order);
                }
                else
                {
                    // Сохранение нового заказа
                    DbOperator db = new DbOperator();

                    db.Session.BeginTransaction();
                    int order_id = (int)db.Session.Save(order);
                    db.Session.Transaction.Commit();

                    // Проставляем ID созданного заказа у его стола
                    Table table = db.Session.Get <Table>(order.Table);
                    if (table != null)
                    {
                        table.CurrentOrder = order_id;
                        db.Session.BeginTransaction();
                        db.Session.Update(table);
                        db.Session.Transaction.Commit();
                    }

                    db.Close();
                }

                return(RedirectToAction("Index"));
            }
            if (order.WaiterName == null)
            {
                order.WaiterName = (string)Session["Waiter"];
            }

            return(View("Form", order));
        }
Exemplo n.º 5
0
        public ActionResult SwitchSeated(int free, int id)
        {
            DbOperator db = new DbOperator();

            db.Session.BeginTransaction();

            Table table = db.Session.Get <Table>(id);

            table.IsFree = (free > 0);
            if (table.CurrentOrder > 0)
            {
                Order order = db.Session.Get <Order>(table.CurrentOrder);
                order.Status = -1;
                db.Session.Save(order);
                table.CurrentOrder = 0;
            }

            db.Session.Save(table);
            db.Session.Transaction.Commit();
            db.Close();

            return(PartialView("TableRowInner", table));
        }