Example #1
0
 private void ResetDeviceContentType(IList <DeviceItemViewModel> items, IEnumerable <Tuple <ZmdbPropertyList, DeviceItemType> > models, CollectionViewSource viewSource)
 {
     if (this.Device != null)
     {
         for (int i = items.Count - 1; i >= 0; i--)
         {
             DeviceItemViewModel model = items[i];
             object         obj2       = null;
             DeviceItemType other      = DeviceItemType.Other;
             foreach (Tuple <ZmdbPropertyList, DeviceItemType> tuple in models)
             {
                 if (tuple.Item1.TryGetValue(model.ZmdbId, out obj2))
                 {
                     tuple.Item1.Remove(model.ZmdbId);
                     other = tuple.Item2;
                     break;
                 }
             }
             if (obj2 != null)
             {
                 model.UpdateProperties((ZmdbPropertyList)obj2, other);
             }
             else
             {
                 items.RemoveAt(i);
             }
         }
         foreach (Tuple <ZmdbPropertyList, DeviceItemType> tuple2 in models)
         {
             foreach (KeyValuePair <string, object> pair in tuple2.Item1)
             {
                 DeviceItemViewModel model3 = new DeviceItemViewModel {
                     ZmdbId = pair.Key
                 };
                 DeviceItemViewModel item = model3;
                 item.UpdateProperties((ZmdbPropertyList)pair.Value, tuple2.Item2);
                 items.Add(item);
             }
         }
     }
     else
     {
         items.Clear();
     }
     using (viewSource.View.DeferRefresh())
     {
         foreach (SortDescription description in viewSource.SortDescriptions)
         {
             viewSource.View.SortDescriptions.Remove(description);
             viewSource.View.SortDescriptions.Add(description);
         }
     }
 }