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); }
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); } } }
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); } } }
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; }