Amoeba.Windows.ObjectToImageConverter.Convert C# (CSharp) Method

Convert() public method

public Convert ( object value, Type targetType, object parameter, CultureInfo culture ) : object
value object
targetType System.Type
parameter object
culture System.Globalization.CultureInfo
return object
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null) return null;

            try
            {
                if (value is string)
                {
                    var path = (string)value;

                    var ext = Path.GetExtension(path);
                    if (string.IsNullOrWhiteSpace(ext)) return null;

                    BitmapSource icon;

                    if (!_icon.TryGetValue(ext, out icon))
                    {
                        icon = IconUtilities.FileAssociatedImage(ext, false, false);
                        if (icon.CanFreeze) icon.Freeze();

                        _icon[ext] = icon;
                    }

                    return icon;
                }
                else if (value is Seed)
                {
                    var seed = (Seed)value;
                    if (string.IsNullOrWhiteSpace(seed.Name)) return null;

                    var ext = Path.GetExtension(seed.Name);
                    if (string.IsNullOrWhiteSpace(ext)) return null;

                    BitmapSource icon;

                    if (!_icon.TryGetValue(ext, out icon))
                    {
                        icon = IconUtilities.FileAssociatedImage(ext, false, false);
                        if (icon.CanFreeze) icon.Freeze();

                        _icon[ext] = icon;
                    }

                    return icon;
                }
                else if (value is Box)
                {
                    return _boxIcon;
                }
            }
            catch (Exception)
            {

            }

            return null;
        }