void OnEditOrderDetailCommand(OrderDetail orderItem) { if (orderItem != null) { CurrentOrderDetailViewModel = new EditOrderDetailViewModel(_serviceFactory, orderItem); CurrentOrderDetailViewModel.OrderDetailUpdated += CurrentOrderDetailViewModel_OrderDetailUpdated; CurrentOrderDetailViewModel.CancelEditOrderDetail += CurrentOrderDetailViewModel_CancelEvent; } }
void OnAddOrderDetailCommand(object arg) { OrderDetail orderDetail = new OrderDetail { OrderId = _order.Id }; CurrentOrderDetailViewModel = new EditOrderDetailViewModel(_serviceFactory, orderDetail); CurrentOrderDetailViewModel.OrderDetailUpdated += CurrentOrderDetailViewModel_OrderDetailUpdated; CurrentOrderDetailViewModel.CancelEditOrderDetail += CurrentOrderDetailViewModel_CancelEvent; }
void CurrentOrderDetailViewModel_OrderDetailUpdated(object sender, Support.OrderDetailEventArgs e) { if (!e.IsNew) { OrderDetail orderDetail = _order.Items.Single(item => item.Id == e.OrderDetail.Id); if (orderDetail != null) { orderDetail.Count = e.OrderDetail.Count; orderDetail.OrderId = e.OrderDetail.OrderId; orderDetail.Price = e.OrderDetail.Price; orderDetail.PartId = e.OrderDetail.PartId; orderDetail.PartDescription = e.OrderDetail.PartDescription; orderDetail.Notes = e.OrderDetail.Notes; } } else { // TODO: check that we have saved new order recently if (_order.Id != 0) { _order.Items = _order.Items.Concat(new[] { new OrderDetail { Id = e.OrderDetail.Id, Count = e.OrderDetail.Count, OrderId = e.OrderDetail.OrderId, Price = e.OrderDetail.Price, PartId = e.OrderDetail.PartId, PartDescription = e.OrderDetail.PartDescription, Notes = e.OrderDetail.Notes } }); } } CurrentOrderDetailViewModel = null; }
void CurrentOrderDetailViewModel_CancelEvent(object sender, EventArgs e) { CurrentOrderDetailViewModel = null; }