Example #1
0
        private static ISyncable SyncableItemFromDeviceItem(DeviceItemViewModel deviceItem)
        {
            Dictionary        props      = PropertyMapping.MediaPropertiesFromZmdbProperties(deviceItem.ZmdbProperties);
            SyncableMediaItem item       = new SyncableMediaItem(deviceItem.Name, props);
            ItemIdentifier    identifier = new ItemIdentifier {
                IdValue     = deviceItem.ZmdbId,
                ItemIdSpace = IdSpaceConstants.ZmdbId
            };

            item.ItemId     = identifier;
            item.LastUpdate = DateTime.UtcNow;
            switch (deviceItem.ItemType)
            {
            case DeviceItemType.Photo:
                item.Properties.SetObjectForKey(true, "Picture", null);
                return(item);

            case DeviceItemType.Music:
            case DeviceItemType.AudioPodcast:
                item.Properties.SetObjectForKey(true, "Audio", null);
                return(item);

            case DeviceItemType.Video:
            case DeviceItemType.VideoPodcast:
                item.Properties.SetObjectForKey(true, "Has Video", null);
                return(item);
            }
            return(item);
        }
Example #2
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);
         }
     }
 }
Example #3
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);
         }
     }
 }
Example #4
0
        private static ISyncable SyncableItemFromDeviceItem(DeviceItemViewModel deviceItem)
        {
            Dictionary props = PropertyMapping.MediaPropertiesFromZmdbProperties(deviceItem.ZmdbProperties);
            SyncableMediaItem item = new SyncableMediaItem(deviceItem.Name, props);
            ItemIdentifier identifier = new ItemIdentifier {
                IdValue = deviceItem.ZmdbId,
                ItemIdSpace = IdSpaceConstants.ZmdbId
            };
            item.ItemId = identifier;
            item.LastUpdate = DateTime.UtcNow;
            switch (deviceItem.ItemType)
            {
                case DeviceItemType.Photo:
                    item.Properties.SetObjectForKey(true, "Picture", null);
                    return item;

                case DeviceItemType.Music:
                case DeviceItemType.AudioPodcast:
                    item.Properties.SetObjectForKey(true, "Audio", null);
                    return item;

                case DeviceItemType.Video:
                case DeviceItemType.VideoPodcast:
                    item.Properties.SetObjectForKey(true, "Has Video", null);
                    return item;
            }
            return item;
        }