Esempio n. 1
0
 internal void UpdateFromItem(DataItem item, HashSet <DataItem> removedItems)
 {
     foreach (var d in item.ItemData)
     {
         var current = ItemData[d.Name];
         if (current != null)
         {
             if (d.IsDefaultValue || d is DataDeletedNode)
             {
                 if (current is DataItem)
                 {
                     removedItems.Add((DataItem)current);
                 }
                 ItemData.Remove(current);
             }
             else if (current.GetType() != d.GetType() || current is DataValue)
             {
                 var i = ItemData.IndexOf(current);
                 ItemData [i] = d;
                 if (current is DataItem)
                 {
                     removedItems.Add((DataItem)current);
                 }
             }
             else if (current is DataItem)
             {
                 ((DataItem)current).UpdateFromItem((DataItem)d, removedItems);
             }
         }
         else if (!d.IsDefaultValue && !(d is DataDeletedNode))
         {
             ItemData.Add(d);
         }
     }
 }
Esempio n. 2
0
        private void btnAddPizza_Click(object sender, EventArgs e)
        {
            // Validation
            if (cbOrder.SelectedIndex > -1 && cbPizzas.SelectedIndex > -1 && cbCrust.SelectedIndex > -1)
            {
                try {
                    int selectedOrderId = int.Parse(cbOrder.Text);
                    Enum.TryParse(cbPizzas.SelectedItem.ToString().Trim(), out Topping topping);
                    Enum.TryParse(cbCrust.SelectedItem.ToString().Trim(), out Crust crust);

                    Item item = new Item(++itemId, selectedOrderId, new Pizza(crust, topping), null);
                    itemData.Add(item);

                    UpdatelbOrders(selectedOrderId);
                }
                catch (Exception ex)
                {
                    // Write it in a Log file
                }
            }
        }
Esempio n. 3
0
        internal void UpdateFromItem(DataItem item, HashSet <DataItem> removedItems)
        {
            var counter = new Dictionary <string, int> ();

            foreach (var d in item.ItemData)
            {
                DataNode       current = null;
                DataCollection col;
                if (!counter.ContainsKey(d.Name))
                {
                    counter [d.Name] = 0;
                }
                var index = ItemData.FindData(d.Name, out col, false, counter[d.Name]);
                counter [d.Name]++;
                if (index != -1)
                {
                    current = col [index];
                }
                if (current != null)
                {
                    if (d.IsDefaultValue || d is DataDeletedNode)
                    {
                        if (current is DataItem)
                        {
                            removedItems.Add((DataItem)current);
                        }
                        ItemData.Remove(current);
                    }
                    else if (current.GetType() != d.GetType() || current is DataValue)
                    {
                        var i = ItemData.IndexOf(current);
                        ItemData [i] = d;
                        if (current is DataItem)
                        {
                            removedItems.Add((DataItem)current);
                        }
                    }
                    else if (current is DataItem)
                    {
                        ((DataItem)current).UpdateFromItem((DataItem)d, removedItems);
                    }
                }
                else if (!d.IsDefaultValue && !(d is DataDeletedNode))
                {
                    var dataItem = d as DataItem;
                    if (dataItem != null)
                    {
                        var newDataItem = new DataItem()
                        {
                            Name        = d.Name,
                            UniqueNames = dataItem.UniqueNames
                        };
                        newDataItem.UpdateFromItem(dataItem, removedItems);
                        ItemData.Add(newDataItem);
                    }
                    else
                    {
                        ItemData.Add(d);
                    }
                }
            }
        }