private void ConfirmButton_Click(object sender, EventArgs e) { if (container is CurrentOrderLayout) { CurrentOrderLayout thisLayout = (CurrentOrderLayout)container; OrderFragment orderFragment = thisLayout.OrderFragment; OrderItemModel model = GetOrderItemModel(variationId, orderFragment); UpdateOrder(orderFragment, model, true); Reset(); } }
private void UpdateOrder(OrderFragment orderFragment, OrderItemModel model, bool addComponents) { if (addComponents) { foreach (OrderItemComponentModel componentModel in components.Values) { model.AddComponentModel(componentModel); } } if (currentOrderItemId == 0) { for (int i = 0; i < currentQuantity; i++) { OrderItemModel newModel = model.Clone(); if (i != 0) { newModel.Id = newOrderItemId++; } foreach (OrderItemComponentModel componentModel in newModel.ComponentModels) { if (i == 0) { break; } componentModel.Id = newOrderItemComponentId++; foreach (OrderItemComponentComponentModel subComponent in componentModel.Components) { subComponent.ParentId = componentModel.Id; } } orderFragment.AddOrderItem(newModel); orderFragment.AddOrderItemModel(newModel); } } else { orderFragment.UnlockOrderItem(); orderFragment.UpdateOrderItem(model); } }
private OrderItemModel GetOrderItemModel(int variationId, OrderFragment orderFragment) { int orderId = orderFragment.CurrentOrderId; int id; if (currentOrderItemId == 0) { //id = svc.CreateNewOrderItem(orderId, variationId, currentInOutId, currentDiscountId); id = newOrderItemId++; } else { id = currentOrderItemId; } OrderItemModel model = new OrderItemModel(id, orderId, variationId, currentInOutId, currentDiscountId, State.None); return(model); }
private void VariationsList_ItemClick(object sender, AdapterView.ItemClickEventArgs e) { if (container is CurrentOrderLayout) { if (positions.Count - 1 > thisPosition) { if ((int)e.Id != positions[thisPosition + 1].Id) { orderItemOverriden = true; positions.RemoveRange(thisPosition + 1, positions.Count - thisPosition - 1); components.Clear(); } else { ++thisPosition; if (positions[thisPosition].PosType == PositionType.Variations) { if (currentOrderItemId != 0 && positions.Count - 1 == thisPosition && !orderItemOverriden) { confirmButton.Visibility = ViewStates.Visible; } else { confirmButton.Visibility = ViewStates.Invisible; } DisplayVariations((int)e.Id); } else { DisplayComponents((int)e.Id, true, ComponentListMode.Variation); } return; } } else if (positions.Count - 1 == thisPosition && (int)e.Id != positions[thisPosition].Id) { orderItemOverriden = true; confirmButton.Visibility = ViewStates.Invisible; } FragmentRoute thisRoute = svc.SelectVariation((int)e.Id); switch (thisRoute) { default: { CurrentOrderLayout thisLayout = (CurrentOrderLayout)container; OrderFragment orderFragment = thisLayout.OrderFragment; OrderItemModel model = GetOrderItemModel((int)e.Id, orderFragment); UpdateOrder(orderFragment, model, false); Reset(); break; } case FragmentRoute.Variations: { ++thisPosition; DisplayVariations((int)e.Id); positions.Add(new VariationPosition() { PosType = PositionType.Variations, Id = (int)e.Id }); break; } case FragmentRoute.Components: { ++thisPosition; DisplayComponents((int)e.Id, false, ComponentListMode.Variation); positions.Add(new VariationPosition() { PosType = PositionType.Components, Id = (int)e.Id }); break; } } } }