فهرست منبع

Fix a bug in Emby.Notifications and clean up

Patrick Barron 5 سال پیش
والد
کامیت
31f725fdbf

+ 3 - 5
Emby.Notifications/Api/NotificationsService.cs

@@ -150,9 +150,7 @@ namespace Emby.Notifications.Api
         [SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
         public object Get(GetNotificationsSummary request)
         {
-            return new NotificationsSummary
-            {
-            };
+            return new NotificationsSummary();
         }
 
         public Task Post(AddAdminNotification request)
@@ -166,8 +164,8 @@ namespace Emby.Notifications.Api
                 Name = request.Name,
                 Url = request.Url,
                 UserIds = _userManager.Users
-                    .Where(p => p.Permissions.Select(x => x.Kind).Contains(PermissionKind.IsAdministrator))
-                    .Select(p => p.Id)
+                    .Where(user => user.HasPermission(PermissionKind.IsAdministrator))
+                    .Select(user => user.Id)
                     .ToArray()
             };
 

+ 11 - 14
MediaBrowser.Api/Images/ImageService.cs

@@ -477,7 +477,7 @@ namespace MediaBrowser.Api.Images
             }
             catch (IOException e)
             {
-                // TODO: Log this
+                Logger.LogError(e, "Error deleting user profile image:");
             }
 
             user.ProfileImage = null;
@@ -820,14 +820,14 @@ namespace MediaBrowser.Api.Images
         /// <param name="request">The request.</param>
         /// <param name="item">The item.</param>
         /// <returns>System.String.</returns>
-        private ItemImageInfo GetImageInfo(ImageRequest request, BaseItem item)
+        private static ItemImageInfo GetImageInfo(ImageRequest request, BaseItem item)
         {
             var index = request.Index ?? 0;
 
             return item.GetImageInfo(request.Type, index);
         }
 
-        private ItemImageInfo GetImageInfo(ImageRequest request, User user)
+        private static ItemImageInfo GetImageInfo(ImageRequest request, User user)
         {
             var info = new ItemImageInfo
             {
@@ -859,15 +859,7 @@ namespace MediaBrowser.Api.Images
         /// <returns>Task.</returns>
         public async Task PostImage(BaseItem entity, Stream inputStream, ImageType imageType, string mimeType)
         {
-            using var reader = new StreamReader(inputStream);
-            var text = await reader.ReadToEndAsync().ConfigureAwait(false);
-
-            var bytes = Convert.FromBase64String(text);
-
-            var memoryStream = new MemoryStream(bytes)
-            {
-                Position = 0
-            };
+            var memoryStream = await GetMemoryStream(inputStream);
 
             // Handle image/png; charset=utf-8
             mimeType = mimeType.Split(';').FirstOrDefault();
@@ -877,16 +869,21 @@ namespace MediaBrowser.Api.Images
             entity.UpdateToRepository(ItemUpdateType.ImageUpdate, CancellationToken.None);
         }
 
-        public async Task PostImage(User user, Stream inputStream, string mimeType)
+        private static async Task<MemoryStream> GetMemoryStream(Stream inputStream)
         {
             using var reader = new StreamReader(inputStream);
             var text = await reader.ReadToEndAsync().ConfigureAwait(false);
 
             var bytes = Convert.FromBase64String(text);
-            var memoryStream = new MemoryStream(bytes)
+            return new MemoryStream(bytes)
             {
                 Position = 0
             };
+        }
+
+        private async Task PostImage(User user, Stream inputStream, string mimeType)
+        {
+            var memoryStream = await GetMemoryStream(inputStream);
 
             // Handle image/png; charset=utf-8
             mimeType = mimeType.Split(';').FirstOrDefault();

+ 1 - 8
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -2760,14 +2760,7 @@ namespace MediaBrowser.Controller.Entities
                 return this;
             }
 
-            foreach (var parent in GetParents())
-            {
-                if (parent.IsTopParent)
-                {
-                    return parent;
-                }
-            }
-            return null;
+            return GetParents().FirstOrDefault(parent => parent.IsTopParent);
         }
 
         [JsonIgnore]