aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.UI/Converters/UserImageConverter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.UI/Converters/UserImageConverter.cs')
-rw-r--r--MediaBrowser.UI/Converters/UserImageConverter.cs60
1 files changed, 60 insertions, 0 deletions
diff --git a/MediaBrowser.UI/Converters/UserImageConverter.cs b/MediaBrowser.UI/Converters/UserImageConverter.cs
new file mode 100644
index 000000000..a9ef4b862
--- /dev/null
+++ b/MediaBrowser.UI/Converters/UserImageConverter.cs
@@ -0,0 +1,60 @@
+using MediaBrowser.Model.DTO;
+using MediaBrowser.UI.Controller;
+using System;
+using System.Globalization;
+using System.Net.Cache;
+using System.Windows.Data;
+using System.Windows.Media.Imaging;
+
+namespace MediaBrowser.UI.Converters
+{
+ public class UserImageConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var user = value as DtoUser;
+
+ if (user != null && user.HasImage)
+ {
+ var config = parameter as string;
+
+ int? maxWidth = null;
+ int? maxHeight = null;
+ int? width = null;
+ int? height = null;
+
+ if (!string.IsNullOrEmpty(config))
+ {
+ var vals = config.Split(',');
+
+ width = GetSize(vals[0]);
+ height = GetSize(vals[1]);
+ maxWidth = GetSize(vals[2]);
+ maxHeight = GetSize(vals[3]);
+ }
+
+ var uri = UIKernel.Instance.ApiClient.GetUserImageUrl(user.Id, width, height, maxWidth, maxHeight, 100);
+
+ return new BitmapImage(new Uri(uri), new RequestCachePolicy(RequestCacheLevel.Revalidate));
+ }
+
+ return null;
+ }
+
+ private int? GetSize(string val)
+ {
+ if (string.IsNullOrEmpty(val) || val == "0")
+ {
+ return null;
+ }
+
+ return int.Parse(val);
+ }
+
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}