using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using System;
using System.Windows;
using System.Windows.Data;
namespace MediaBrowser.UI.Converters
{
///
/// Class BaseItemImageVisibilityConverter
///
class BaseItemImageVisibilityConverter : IValueConverter
{
///
/// Converts a value.
///
/// The value produced by the binding source.
/// The type of the binding target property.
/// The converter parameter to use.
/// The culture to use in the converter.
/// A converted value. If the method returns null, the valid null value is used.
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var item = value as BaseItemDto;
if (item != null)
{
var paramString = parameter as string;
var vals = paramString.Split(',');
var imageType = (ImageType)Enum.Parse(typeof(ImageType), vals[0], true);
bool reverse = vals.Length > 1 && vals[1].Equals("reverse", StringComparison.OrdinalIgnoreCase);
return GetVisibility(item, imageType, reverse);
}
return Visibility.Collapsed;
}
///
/// Gets the visibility.
///
/// The item.
/// The type.
/// if set to true [reverse].
/// Visibility.
private Visibility GetVisibility(BaseItemDto item, ImageType type, bool reverse)
{
var hasImageVisibility = reverse ? Visibility.Collapsed : Visibility.Visible;
var hasNoImageVisibility = reverse ? Visibility.Visible : Visibility.Collapsed;
if (type == ImageType.Logo)
{
return item.HasLogo || !string.IsNullOrEmpty(item.ParentLogoItemId) ? hasImageVisibility : hasNoImageVisibility;
}
return item.HasPrimaryImage ? hasImageVisibility : hasNoImageVisibility;
}
///
/// Converts a value.
///
/// The value that is produced by the binding target.
/// The type to convert to.
/// The converter parameter to use.
/// The culture to use in the converter.
/// A converted value. If the method returns null, the valid null value is used.
///
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}