public void Show()
        {
            if (container is CurrentOrderLayout)
            {
                CurrentOrderLayout thisLayout = (CurrentOrderLayout)container;

                if (thisPosition > 0)
                {
                    backButton.Visibility = ViewStates.Visible;
                }
                else
                {
                    backButton.Visibility = ViewStates.Invisible;
                }

                if (thisPosition < positions.Count() - 1)
                {
                    forwardButton.Visibility = ViewStates.Visible;
                }
                else
                {
                    forwardButton.Visibility = ViewStates.Invisible;
                }
            }
            else if (container is AdminLayout)
            {
            }
        }
        private void EditImage_Click(object sender, EventArgs e)
        {
            if (tillPopup != null)
            {
                return;
            }

            ImageViewWithId image = (ImageViewWithId)sender;

            if (container.Parent.Parent is CurrentOrderLayout)
            {
                CurrentOrderLayout layout     = (CurrentOrderLayout)container.Parent.Parent;
                VariationsFragment variations = (VariationsFragment)layout.LeftFragment;

                editingPosition = image.Position;

                nameViews[editingPosition].SetTextColor(Color.DarkGreen);

                OrderItemModel thisModel = currentOrder.OrderItems[editingPosition];

                svc.LockOrderItem(thisModel.Id);
                lockedOrderItemId = thisModel.Id;

                variations.RehydrateOrderItem(thisModel);
            }
        }
        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 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;
                }
                }
            }
        }