public void StopSupplyItem(List<Item> itemList) { try { //save record to database ItemDao.StopSupplyItem(itemList); List<RequestHandleInfo> requestList = new List<RequestHandleInfo>(); foreach (Item item in itemList) { RequestHandleInfo info = new RequestHandleInfo(); info.RequestType = RequestType.DeorderItem; info.SourceId = item.Id; requestList.Add(info); } //HandleEventHandler(StopSupplyItemEvent, new HandleEventArgs("stop supply item", requestList)); } catch (HCSMSException ex) { raiseError(ex); throw new FaultException<HCSMSException>(ex); } catch (Exception ex) { raiseError(ex); } }
public void HandleRequest(RequestHandleInfo aRequest) { throw new NotImplementedException(); }
public void ChangeItem(string tableNumber, Dictionary<Item, Item> itemPair) { FrontDeskRequest frontdesk = null; try { HCSMSLog.OnWarningLog(this, new NotifyEventArgs("Recieve change order Request")); //check if this table is really in use DinningTable table = TableDao.GetDinningTable(tableNumber); if (table == null) { throw new HCSMSException("餐桌是空的 !"); } // constructing request list List<RequestHandleInfo> requestList = new List<RequestHandleInfo>(); foreach (KeyValuePair<Item, Item> ite in itemPair) { RequestHandleInfo info = new RequestHandleInfo(); info.EntityId = tableNumber; info.IsHandled = false; info.RequestType = RequestType.ChangeItem; info.SourceId = ite.Key.Id; info.TargetId = ite.Value.Id; requestList.Add(info); } //check for response of cook at the kitchen KitchenRequest handler = KitchenRequestControl.GetService(); if (handler == null) { requestList.Clear(); } else { requestList = handler.OnChangeItem(requestList); } HCSMSLog.OnWarningLog(this, new NotifyEventArgs("Recieve Result order item")); List<RequestHandleInfo> denyList = new List<RequestHandleInfo>(); foreach (RequestHandleInfo ite in requestList) { if (!ite.IsHandled) denyList.Add(ite); } if (denyList.Count == 0 && requestList.Count > 0) { //build data for calling data access servcie Dictionary<string, string> itemIdList = new Dictionary<string, string>(); foreach (var ite in itemPair) { itemIdList.Add(ite.Key.Id, ite.Value.Id); } //save data to database ItemDao.ChangeItem(table.Id, itemIdList); } else { frontdesk = FrontDeskRequestControl.GetService(callBackId); if (frontdesk != null) { //means kitchen service is not up if (requestList.Count == 0) { frontdesk.InformationMessage( new NotifyEventArgs("不存在厨房处理服务!")); } // notify front desk, the request is not satisfied else { frontdesk.RequestDeny(denyList); } } } } catch (HCSMSException ex) { raiseError(ex); if (frontdesk != null) { frontdesk.ErrorMessage(new ErrorEventArgs("", ex)); } } catch (Exception ex) { raiseError(ex); } }