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); }
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); }
// Возвращает данные по заказу из базы // А также проставленные ФИО официанта и набор выбранных блюд для вывода // Если заказ не найдет, генерирует 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); }
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)); }
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)); }