Explorar o código

Don't mix LINQ and roreach loops for readability

Bond-009 %!s(int64=6) %!d(string=hai) anos
pai
achega
9993dafe54

+ 8 - 8
DvdLib/Ifo/Dvd.cs

@@ -26,17 +26,17 @@ namespace DvdLib.Ifo
 
             if (vmgPath == null)
             {
-                var allIfos = allFiles.Where(i => string.Equals(i.Extension, ".ifo", StringComparison.OrdinalIgnoreCase));
-
-                foreach (var ifo in allIfos)
+                foreach (var ifo in allFiles)
                 {
-                    var num = ifo.Name.Split('_').ElementAtOrDefault(1);
-                    var numbersRead = new List<ushort>();
+                    if (!string.Equals(ifo.Extension, ".ifo", StringComparison.OrdinalIgnoreCase))
+                    {
+                        continue;
+                    }
 
-                    if (!string.IsNullOrEmpty(num) && ushort.TryParse(num, out var ifoNumber) && !numbersRead.Contains(ifoNumber))
+                    var nums = ifo.Name.Split(new [] { '_' }, StringSplitOptions.RemoveEmptyEntries);
+                    if (nums.Length >= 2 && ushort.TryParse(nums[1], out var ifoNumber))
                     {
                         ReadVTS(ifoNumber, ifo.FullName);
-                        numbersRead.Add(ifoNumber);
                     }
                 }
             }
@@ -76,7 +76,7 @@ namespace DvdLib.Ifo
             }
         }
 
-        private void ReadVTS(ushort vtsNum, List<FileSystemMetadata> allFiles)
+        private void ReadVTS(ushort vtsNum, IEnumerable<FileSystemMetadata> allFiles)
         {
             var filename = string.Format("VTS_{0:00}_0.IFO", vtsNum);
 

+ 2 - 2
Emby.Dlna/ContentDirectory/ControlHandler.cs

@@ -260,7 +260,7 @@ namespace Emby.Dlna.ContentDirectory
 
                     if (item.IsDisplayedAsFolder || serverItem.StubType.HasValue)
                     {
-                        var childrenResult = (GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount));
+                        var childrenResult = GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount);
 
                         _didlBuilder.WriteFolderElement(writer, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id);
                     }
@@ -273,7 +273,7 @@ namespace Emby.Dlna.ContentDirectory
                 }
                 else
                 {
-                    var childrenResult = (GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount));
+                    var childrenResult = GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount);
                     totalCount = childrenResult.TotalRecordCount;
 
                     provided = childrenResult.Items.Length;

+ 1 - 2
Emby.Dlna/Didl/DidlBuilder.cs

@@ -818,10 +818,9 @@ namespace Emby.Dlna.Didl
         {
             AddCommonFields(item, itemStubType, context, writer, filter);
 
-            var hasArtists = item as IHasArtist;
             var hasAlbumArtists = item as IHasAlbumArtist;
 
-            if (hasArtists != null)
+            if (item is IHasArtist hasArtists)
             {
                 foreach (var artist in hasArtists.Artists)
                 {

+ 11 - 10
Emby.Dlna/DlnaManager.cs

@@ -2,6 +2,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
@@ -15,7 +16,6 @@ using MediaBrowser.Controller.Drawing;
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Drawing;
 using MediaBrowser.Model.IO;
-using MediaBrowser.Model.Reflection;
 using MediaBrowser.Model.Serialization;
 using Microsoft.Extensions.Logging;
 
@@ -29,7 +29,7 @@ namespace Emby.Dlna
         private readonly ILogger _logger;
         private readonly IJsonSerializer _jsonSerializer;
         private readonly IServerApplicationHost _appHost;
-        private readonly IAssemblyInfo _assemblyInfo;
+        private static readonly Assembly _assembly = typeof(DlnaManager).Assembly;
 
         private readonly Dictionary<string, Tuple<InternalProfileInfo, DeviceProfile>> _profiles = new Dictionary<string, Tuple<InternalProfileInfo, DeviceProfile>>(StringComparer.Ordinal);
 
@@ -39,8 +39,7 @@ namespace Emby.Dlna
             IApplicationPaths appPaths,
             ILoggerFactory loggerFactory,
             IJsonSerializer jsonSerializer,
-            IServerApplicationHost appHost,
-            IAssemblyInfo assemblyInfo)
+            IServerApplicationHost appHost)
         {
             _xmlSerializer = xmlSerializer;
             _fileSystem = fileSystem;
@@ -48,7 +47,6 @@ namespace Emby.Dlna
             _logger = loggerFactory.CreateLogger("Dlna");
             _jsonSerializer = jsonSerializer;
             _appHost = appHost;
-            _assemblyInfo = assemblyInfo;
         }
 
         public async Task InitProfilesAsync()
@@ -368,15 +366,18 @@ namespace Emby.Dlna
 
             var systemProfilesPath = SystemProfilesPath;
 
-            foreach (var name in _assemblyInfo.GetManifestResourceNames(GetType())
-                .Where(i => i.StartsWith(namespaceName))
-                .ToList())
+            foreach (var name in _assembly.GetManifestResourceNames())
             {
+                if (!name.StartsWith(namespaceName))
+                {
+                    continue;
+                }
+
                 var filename = Path.GetFileName(name).Substring(namespaceName.Length);
 
                 var path = Path.Combine(systemProfilesPath, filename);
 
-                using (var stream = _assemblyInfo.GetManifestResourceStream(GetType(), name))
+                using (var stream = _assembly.GetManifestResourceStream(name))
                 {
                     var fileInfo = _fileSystem.GetFileInfo(path);
 
@@ -514,7 +515,7 @@ namespace Emby.Dlna
             return new ImageStream
             {
                 Format = format,
-                Stream = _assemblyInfo.GetManifestResourceStream(GetType(), resource)
+                Stream = _assembly.GetManifestResourceStream(resource)
             };
         }
     }

+ 1 - 1
Emby.Dlna/Main/DlnaEntryPoint.cs

@@ -246,7 +246,7 @@ namespace Emby.Dlna.Main
 
         private async Task RegisterServerEndpoints()
         {
-            var addresses = (await _appHost.GetLocalIpAddresses(CancellationToken.None).ConfigureAwait(false)).ToList();
+            var addresses = await _appHost.GetLocalIpAddresses(CancellationToken.None).ConfigureAwait(false);
 
             var udn = CreateUuid(_appHost.SystemId);
 

+ 19 - 0
Emby.Dlna/PlayTo/TransportCommands.cs

@@ -107,12 +107,18 @@ namespace Emby.Dlna.PlayTo
             foreach (var arg in action.ArgumentList)
             {
                 if (arg.Direction == "out")
+                {
                     continue;
+                }
 
                 if (arg.Name == "InstanceID")
+                {
                     stateString += BuildArgumentXml(arg, "0");
+                }
                 else
+                {
                     stateString += BuildArgumentXml(arg, null);
+                }
             }
 
             return string.Format(CommandBase, action.Name, xmlNamespace, stateString);
@@ -125,11 +131,18 @@ namespace Emby.Dlna.PlayTo
             foreach (var arg in action.ArgumentList)
             {
                 if (arg.Direction == "out")
+                {
                     continue;
+                }
+
                 if (arg.Name == "InstanceID")
+                {
                     stateString += BuildArgumentXml(arg, "0");
+                }
                 else
+                {
                     stateString += BuildArgumentXml(arg, value.ToString(), commandParameter);
+                }
             }
 
             return string.Format(CommandBase, action.Name, xmlNamesapce, stateString);
@@ -142,11 +155,17 @@ namespace Emby.Dlna.PlayTo
             foreach (var arg in action.ArgumentList)
             {
                 if (arg.Name == "InstanceID")
+                {
                     stateString += BuildArgumentXml(arg, "0");
+                }
                 else if (dictionary.ContainsKey(arg.Name))
+                {
                     stateString += BuildArgumentXml(arg, dictionary[arg.Name]);
+                }
                 else
+                {
                     stateString += BuildArgumentXml(arg, value.ToString());
+                }
             }
 
             return string.Format(CommandBase, action.Name, xmlNamesapce, stateString);

+ 20 - 12
Emby.Naming/TV/EpisodePathParser.cs

@@ -2,7 +2,6 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Linq;
-using System.Text.RegularExpressions;
 using Emby.Naming.Common;
 
 namespace Emby.Naming.TV
@@ -22,7 +21,9 @@ namespace Emby.Naming.TV
             // There were no failed tests without this block, but to be safe, we can keep it until
             // the regex which require file extensions are modified so that they don't need them.
             if (IsDirectory)
+            {
                 path += ".mp4";
+            }
 
             EpisodePathParserResult result = null;
 
@@ -35,6 +36,7 @@ namespace Emby.Naming.TV
                         continue;
                     }
                 }
+
                 if (isNamed.HasValue)
                 {
                     if (expression.IsNamed != isNamed.Value)
@@ -42,6 +44,7 @@ namespace Emby.Naming.TV
                         continue;
                     }
                 }
+
                 if (isOptimistic.HasValue)
                 {
                     if (expression.IsOptimistic != isOptimistic.Value)
@@ -191,13 +194,20 @@ namespace Emby.Naming.TV
 
         private void FillAdditional(string path, EpisodePathParserResult info, IEnumerable<EpisodeExpression> expressions)
         {
-            var results = expressions
-                .Where(i => i.IsNamed)
-                .Select(i => Parse(path, i))
-                .Where(i => i.Success);
-
-            foreach (var result in results)
+            foreach (var i in expressions)
             {
+                if (!i.IsNamed)
+                {
+                    continue;
+                }
+
+                var result = Parse(path, i);
+
+                if (!result.Success)
+                {
+                    continue;
+                }
+
                 if (string.IsNullOrEmpty(info.SeriesName))
                 {
                     info.SeriesName = result.SeriesName;
@@ -208,12 +218,10 @@ namespace Emby.Naming.TV
                     info.EndingEpsiodeNumber = result.EndingEpsiodeNumber;
                 }
 
-                if (!string.IsNullOrEmpty(info.SeriesName))
+                if (!string.IsNullOrEmpty(info.SeriesName)
+                    && (!info.EpisodeNumber.HasValue || info.EndingEpsiodeNumber.HasValue))
                 {
-                    if (!info.EpisodeNumber.HasValue || info.EndingEpsiodeNumber.HasValue)
-                    {
-                        break;
-                    }
+                    break;
                 }
             }
         }

+ 6 - 1
Emby.Server.Implementations/Activity/ActivityManager.cs

@@ -39,8 +39,13 @@ namespace Emby.Server.Implementations.Activity
         {
             var result = _repo.GetActivityLogEntries(minDate, hasUserId, startIndex, limit);
 
-            foreach (var item in result.Items.Where(i => !i.UserId.Equals(Guid.Empty)))
+            foreach (var item in result.Items)
             {
+                if (item.UserId == Guid.Empty)
+                {
+                    continue;
+                }
+
                 var user = _userManager.GetUserById(item.UserId);
 
                 if (user != null)

+ 1 - 1
Emby.Server.Implementations/ApplicationHost.cs

@@ -769,7 +769,7 @@ namespace Emby.Server.Implementations
             serviceCollection.AddSingleton(SessionManager);
 
             serviceCollection.AddSingleton<IDlnaManager>(
-                new DlnaManager(XmlSerializer, FileSystemManager, ApplicationPaths, LoggerFactory, JsonSerializer, this, assemblyInfo));
+                new DlnaManager(XmlSerializer, FileSystemManager, ApplicationPaths, LoggerFactory, JsonSerializer, this));
 
             CollectionManager = new CollectionManager(LibraryManager, ApplicationPaths, LocalizationManager, FileSystemManager, LibraryMonitor, LoggerFactory, ProviderManager);
             serviceCollection.AddSingleton(CollectionManager);

+ 3 - 8
Emby.Server.Implementations/Channels/ChannelManager.cs

@@ -243,8 +243,7 @@ namespace Emby.Server.Implementations.Channels
             {
                 foreach (var item in returnItems)
                 {
-                    var task = RefreshLatestChannelItems(GetChannelProvider(item), CancellationToken.None);
-                    Task.WaitAll(task);
+                    RefreshLatestChannelItems(GetChannelProvider(item), CancellationToken.None).GetAwaiter().GetResult();
                 }
             }
 
@@ -303,9 +302,7 @@ namespace Emby.Server.Implementations.Channels
                 }
 
                 numComplete++;
-                double percent = numComplete;
-                percent /= allChannelsList.Count;
-
+                double percent = (double)numComplete / allChannelsList.Count;
                 progress.Report(100 * percent);
             }
 
@@ -658,9 +655,7 @@ namespace Emby.Server.Implementations.Channels
 
             foreach (var item in result.Items)
             {
-                var folder = item as Folder;
-
-                if (folder != null)
+                if (item is Folder folder)
                 {
                     await GetChannelItemsInternal(new InternalItemsQuery
                     {

+ 2 - 2
Emby.Server.Implementations/Data/SqliteUserDataRepository.cs

@@ -119,9 +119,9 @@ namespace Emby.Server.Implementations.Data
                     {
                         list.Add(row[0].ReadGuidFromBlob());
                     }
-                    catch
+                    catch (Exception ex)
                     {
-
+                        Logger.LogError(ex, "Error while getting user");
                     }
                 }
             }