Browse Source

update GetItems method

Luke Pulverenti 8 years ago
parent
commit
33014f77aa
100 changed files with 239 additions and 256 deletions
  1. 0 1
      Emby.Common.Implementations/BaseApplicationHost.cs
  2. 5 0
      Emby.Common.Implementations/Diagnostics/CommonProcess.cs
  3. 1 0
      Emby.Common.Implementations/Emby.Common.Implementations.csproj
  4. 1 1
      Emby.Common.Implementations/HttpClientManager/HttpClientManager.cs
  5. 31 1
      Emby.Common.Implementations/IO/ProgressStream.cs
  6. 12 0
      Emby.Common.Implementations/Net/NetAcceptSocket.cs
  7. 0 1
      Emby.Common.Implementations/Serialization/XmlSerializer.cs
  8. 18 18
      Emby.Dlna/ContentDirectory/ControlHandler.cs
  9. 10 9
      Emby.Dlna/Didl/DidlBuilder.cs
  10. 1 1
      Emby.Drawing.ImageMagick/PlayedIndicatorDrawer.cs
  11. 1 1
      Emby.Drawing.ImageMagick/StripCollageBuilder.cs
  12. 0 2
      Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs
  13. 1 1
      Emby.Drawing.Skia/PlayedIndicatorDrawer.cs
  14. 1 1
      Emby.Drawing.Skia/UnplayedCountIndicator.cs
  15. 1 1
      Emby.Drawing/Common/ImageHeader.cs
  16. 1 1
      Emby.Drawing/ImageProcessor.cs
  17. 2 2
      Emby.Server.Core/ApplicationHost.cs
  18. 6 6
      Emby.Server.Implementations/Channels/ChannelManager.cs
  19. 3 3
      Emby.Server.Implementations/Collections/CollectionImageProvider.cs
  20. 1 1
      Emby.Server.Implementations/Collections/CollectionsDynamicFolder.cs
  21. 1 1
      Emby.Server.Implementations/Devices/CameraUploadsDynamicFolder.cs
  22. 0 1
      Emby.Server.Implementations/Devices/DeviceManager.cs
  23. 9 9
      Emby.Server.Implementations/Dto/DtoService.cs
  24. 1 1
      Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs
  25. 0 1
      Emby.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
  26. 1 1
      Emby.Server.Implementations/FileOrganization/FileOrganizationService.cs
  27. 1 1
      Emby.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs
  28. 1 1
      Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
  29. 8 1
      Emby.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpListener.cs
  30. 1 1
      Emby.Server.Implementations/HttpServer/StreamWriter.cs
  31. 1 1
      Emby.Server.Implementations/IO/FileRefresher.cs
  32. 1 1
      Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs
  33. 3 30
      Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs
  34. 1 1
      Emby.Server.Implementations/Library/CoreResolutionIgnoreRule.cs
  35. 1 1
      Emby.Server.Implementations/Library/LibraryManager.cs
  36. 0 2
      Emby.Server.Implementations/Library/ResolverHelper.cs
  37. 1 1
      Emby.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs
  38. 1 1
      Emby.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs
  39. 1 1
      Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
  40. 1 1
      Emby.Server.Implementations/Library/Resolvers/SpecialFolderResolver.cs
  41. 1 1
      Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
  42. 4 4
      Emby.Server.Implementations/Library/UserDataManager.cs
  43. 1 1
      Emby.Server.Implementations/Library/Validators/PeopleValidator.cs
  44. 1 1
      Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs
  45. 4 4
      Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
  46. 1 1
      Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs
  47. 1 1
      Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs
  48. 0 2
      Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs
  49. 1 1
      Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs
  50. 1 1
      Emby.Server.Implementations/LiveTv/LiveTvManager.cs
  51. 4 1
      Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs
  52. 1 1
      Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
  53. 0 1
      Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs
  54. 1 1
      Emby.Server.Implementations/MediaEncoder/EncodingManager.cs
  55. 3 1
      Emby.Server.Implementations/Migrations/GuideMigration.cs
  56. 3 1
      Emby.Server.Implementations/Migrations/LibraryScanMigration.cs
  57. 2 2
      Emby.Server.Implementations/Photos/PhotoAlbumImageProvider.cs
  58. 7 7
      Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs
  59. 4 4
      Emby.Server.Implementations/Playlists/PlaylistManager.cs
  60. 0 1
      Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs
  61. 1 1
      Emby.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs
  62. 1 1
      Emby.Server.Implementations/ServerManager/ServerManager.cs
  63. 0 1
      Emby.Server.Implementations/ServerManager/WebSocketConnection.cs
  64. 2 2
      Emby.Server.Implementations/Services/ResponseHelper.cs
  65. 2 4
      Emby.Server.Implementations/Services/ServiceController.cs
  66. 2 1
      Emby.Server.Implementations/Services/ServiceHandler.cs
  67. 4 4
      Emby.Server.Implementations/Session/SessionManager.cs
  68. 0 23
      Emby.Server.Implementations/Session/SessionWebSocketListener.cs
  69. 4 5
      Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs
  70. 4 5
      Emby.Server.Implementations/UserViews/DynamicImageProvider.cs
  71. 2 2
      MediaBrowser.Api/ApiEntryPoint.cs
  72. 2 3
      MediaBrowser.Api/ConfigurationService.cs
  73. 1 1
      MediaBrowser.Api/Dlna/DlnaServerService.cs
  74. 2 2
      MediaBrowser.Api/FilterService.cs
  75. 0 2
      MediaBrowser.Api/Images/ImageByNameService.cs
  76. 1 1
      MediaBrowser.Api/Images/ImageService.cs
  77. 1 6
      MediaBrowser.Api/Images/RemoteImageService.cs
  78. 1 1
      MediaBrowser.Api/ItemRefreshService.cs
  79. 1 1
      MediaBrowser.Api/Library/LibraryService.cs
  80. 1 1
      MediaBrowser.Api/Library/LibraryStructureService.cs
  81. 1 1
      MediaBrowser.Api/LiveTv/LiveTvService.cs
  82. 1 1
      MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs
  83. 0 2
      MediaBrowser.Api/Playback/Progressive/AudioService.cs
  84. 1 1
      MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs
  85. 12 12
      MediaBrowser.Api/Reports/ReportsService.cs
  86. 1 1
      MediaBrowser.Api/Subtitles/SubtitleService.cs
  87. 1 1
      MediaBrowser.Api/System/SystemService.cs
  88. 2 2
      MediaBrowser.Api/TvShowsService.cs
  89. 4 4
      MediaBrowser.Api/UserLibrary/ItemsService.cs
  90. 1 1
      MediaBrowser.Api/UserLibrary/PlaystateService.cs
  91. 2 3
      MediaBrowser.Api/UserLibrary/UserLibraryService.cs
  92. 1 1
      MediaBrowser.Api/UserLibrary/UserViewsService.cs
  93. 1 1
      MediaBrowser.Api/VideosService.cs
  94. 1 1
      MediaBrowser.Common/MediaBrowser.Common.csproj
  95. 3 3
      MediaBrowser.Controller/Channels/Channel.cs
  96. 1 1
      MediaBrowser.Controller/Channels/IChannelManager.cs
  97. 0 1
      MediaBrowser.Controller/Entities/AggregateFolder.cs
  98. 1 1
      MediaBrowser.Controller/Entities/Audio/Audio.cs
  99. 2 4
      MediaBrowser.Controller/Entities/BaseItem.cs
  100. 1 1
      MediaBrowser.Controller/Entities/CollectionFolder.cs

+ 0 - 1
Emby.Common.Implementations/BaseApplicationHost.cs

@@ -31,7 +31,6 @@ using Emby.Common.Implementations.Net;
 using Emby.Common.Implementations.EnvironmentInfo;
 using Emby.Common.Implementations.Threading;
 using MediaBrowser.Common;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Model.Cryptography;
 using MediaBrowser.Model.Diagnostics;
 using MediaBrowser.Model.Net;

+ 5 - 0
Emby.Common.Implementations/Diagnostics/CommonProcess.cs

@@ -98,6 +98,11 @@ namespace Emby.Common.Implementations.Diagnostics
             return _process.WaitForExit(timeMs);
         }
 
+        public Task<bool> WaitForExitAsync(int timeMs)
+        {
+            return Task.FromResult(_process.WaitForExit(timeMs));
+        }
+
         public void Dispose()
         {
             _process.Dispose();

+ 1 - 0
Emby.Common.Implementations/Emby.Common.Implementations.csproj

@@ -72,6 +72,7 @@
     <Compile Include="IO\IsoManager.cs" />
     <Compile Include="IO\LnkShortcutHandler.cs" />
     <Compile Include="IO\ManagedFileSystem.cs" />
+    <Compile Include="IO\ProgressStream.cs" />
     <Compile Include="IO\SharpCifsFileSystem.cs" />
     <Compile Include="IO\SharpCifs\Config.cs" />
     <Compile Include="IO\SharpCifs\Dcerpc\DcerpcBind.cs" />

+ 1 - 1
Emby.Common.Implementations/HttpClientManager/HttpClientManager.cs

@@ -1,7 +1,6 @@
 using System.Net.Sockets;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Extensions;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Net;
@@ -17,6 +16,7 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using Emby.Common.Implementations.HttpClientManager;
+using Emby.Common.Implementations.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Common;
 

+ 31 - 1
MediaBrowser.Common/IO/ProgressStream.cs → Emby.Common.Implementations/IO/ProgressStream.cs

@@ -1,7 +1,7 @@
 using System;
 using System.IO;
 
-namespace MediaBrowser.Common.IO
+namespace Emby.Common.Implementations.IO
 {
     /// <summary>
     /// Measures progress when reading from a stream or writing to one
@@ -155,6 +155,21 @@ namespace MediaBrowser.Common.IO
             return read;
         }
 
+        public override int EndRead(IAsyncResult asyncResult)
+        {
+            var read = base.EndRead(asyncResult);
+
+            BytesProcessed += read;
+
+            double percent = BytesProcessed;
+            percent /= ReadLength ?? BaseStream.Length;
+            percent *= 100;
+
+            ProgressAction(percent);
+
+            return read;
+        }
+
         /// <summary>
         /// When overridden in a derived class, sets the position within the current stream.
         /// </summary>
@@ -194,6 +209,21 @@ namespace MediaBrowser.Common.IO
             ProgressAction(percent);
         }
 
+        public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
+        {
+            var result = base.BeginWrite(buffer, offset, count, callback, state);
+
+            BytesProcessed += count;
+
+            double percent = BytesProcessed;
+            percent /= WriteLength;
+            percent *= 100;
+
+            ProgressAction(percent);
+
+            return result;
+        }
+
         /// <summary>
         /// Releases the unmanaged resources used by the <see cref="T:System.IO.Stream" /> and optionally releases the managed resources.
         /// </summary>

+ 12 - 0
Emby.Common.Implementations/Net/NetAcceptSocket.cs

@@ -108,6 +108,18 @@ namespace Emby.Common.Implementations.Net
             return completionSource.Task;
         }
 
+        public IAsyncResult BeginSendFile(string path, byte[] preBuffer, byte[] postBuffer, AsyncCallback callback, object state)
+        {
+            var options = TransmitFileOptions.UseDefaultWorkerThread;
+
+            return Socket.BeginSendFile(path, preBuffer, postBuffer, options, new AsyncCallback(FileSendCallback), state);
+        }
+
+        public void EndSendFile(IAsyncResult result)
+        {
+            Socket.EndSendFile(result);
+        }
+
         private void FileSendCallback(IAsyncResult ar)
         {
             // Retrieve the socket from the state object.

+ 0 - 1
Emby.Common.Implementations/Serialization/XmlSerializer.cs

@@ -5,7 +5,6 @@ using System.Collections.Generic;
 using System.IO;
 using System.Xml;
 using System.Xml.Serialization;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;
 

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

@@ -86,7 +86,7 @@ namespace Emby.Dlna.ContentDirectory
                 return HandleGetSystemUpdateID();
 
             if (string.Equals(methodName, "Browse", StringComparison.OrdinalIgnoreCase))
-                return HandleBrowse(methodParams, user, deviceId).Result;
+                return HandleBrowse(methodParams, user, deviceId);
 
             if (string.Equals(methodName, "X_GetFeatureList", StringComparison.OrdinalIgnoreCase))
                 return HandleXGetFeatureList();
@@ -98,10 +98,10 @@ namespace Emby.Dlna.ContentDirectory
                 return HandleXSetBookmark(methodParams, user);
 
             if (string.Equals(methodName, "Search", StringComparison.OrdinalIgnoreCase))
-                return HandleSearch(methodParams, user, deviceId).Result;
+                return HandleSearch(methodParams, user, deviceId);
 
             if (string.Equals(methodName, "X_BrowseByLetter", StringComparison.OrdinalIgnoreCase))
-                return HandleX_BrowseByLetter(methodParams, user, deviceId).Result;
+                return HandleX_BrowseByLetter(methodParams, user, deviceId);
 
             throw new ResourceNotFoundException("Unexpected control request name: " + methodName);
         }
@@ -203,7 +203,7 @@ namespace Emby.Dlna.ContentDirectory
             return defaultValue;
         }
 
-        private async Task<IEnumerable<KeyValuePair<string, string>>> HandleBrowse(IDictionary<string, string> sparams, User user, string deviceId)
+        private IEnumerable<KeyValuePair<string, string>> HandleBrowse(IDictionary<string, string> sparams, User user, string deviceId)
         {
             var id = sparams["ObjectID"];
             var flag = sparams["BrowseFlag"];
@@ -263,7 +263,7 @@ namespace Emby.Dlna.ContentDirectory
 
                     if (item.IsDisplayedAsFolder || serverItem.StubType.HasValue)
                     {
-                        var childrenResult = (await GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount).ConfigureAwait(false));
+                        var childrenResult = (GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount));
 
                         _didlBuilder.WriteFolderElement(writer, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id);
                     }
@@ -276,7 +276,7 @@ namespace Emby.Dlna.ContentDirectory
                 }
                 else
                 {
-                    var childrenResult = (await GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount).ConfigureAwait(false));
+                    var childrenResult = (GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount));
                     totalCount = childrenResult.TotalRecordCount;
 
                     provided = childrenResult.Items.Length;
@@ -288,7 +288,7 @@ namespace Emby.Dlna.ContentDirectory
 
                         if (childItem.IsDisplayedAsFolder || displayStubType.HasValue)
                         {
-                            var childCount = (await GetUserItems(childItem, displayStubType, user, sortCriteria, null, 0).ConfigureAwait(false))
+                            var childCount = (GetUserItems(childItem, displayStubType, user, sortCriteria, null, 0))
                                 .TotalRecordCount;
 
                             _didlBuilder.WriteFolderElement(writer, childItem, displayStubType, item, childCount, filter);
@@ -314,13 +314,13 @@ namespace Emby.Dlna.ContentDirectory
                 };
         }
 
-        private Task<IEnumerable<KeyValuePair<string, string>>> HandleX_BrowseByLetter(IDictionary<string, string> sparams, User user, string deviceId)
+        private IEnumerable<KeyValuePair<string, string>> HandleX_BrowseByLetter(IDictionary<string, string> sparams, User user, string deviceId)
         {
             // TODO: Implement this method
             return HandleSearch(sparams, user, deviceId);
         }
 
-        private async Task<IEnumerable<KeyValuePair<string, string>>> HandleSearch(IDictionary<string, string> sparams, User user, string deviceId)
+        private IEnumerable<KeyValuePair<string, string>> HandleSearch(IDictionary<string, string> sparams, User user, string deviceId)
         {
             var searchCriteria = new SearchCriteria(GetValueOrDefault(sparams, "SearchCriteria", ""));
             var sortCriteria = new SortCriteria(GetValueOrDefault(sparams, "SortCriteria", ""));
@@ -374,7 +374,7 @@ namespace Emby.Dlna.ContentDirectory
 
                 var item = serverItem.Item;
 
-                var childrenResult = (await GetChildrenSorted(item, user, searchCriteria, sortCriteria, start, requestedCount).ConfigureAwait(false));
+                var childrenResult = (GetChildrenSorted(item, user, searchCriteria, sortCriteria, start, requestedCount));
 
                 totalCount = childrenResult.TotalRecordCount;
 
@@ -384,7 +384,7 @@ namespace Emby.Dlna.ContentDirectory
                 {
                     if (i.IsDisplayedAsFolder)
                     {
-                        var childCount = (await GetChildrenSorted(i, user, searchCriteria, sortCriteria, null, 0).ConfigureAwait(false))
+                        var childCount = (GetChildrenSorted(i, user, searchCriteria, sortCriteria, null, 0))
                             .TotalRecordCount;
 
                         _didlBuilder.WriteFolderElement(writer, i, null, item, childCount, filter);
@@ -410,7 +410,7 @@ namespace Emby.Dlna.ContentDirectory
                 };
         }
 
-        private Task<QueryResult<BaseItem>> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int? startIndex, int? limit)
+        private QueryResult<BaseItem> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int? startIndex, int? limit)
         {
             var folder = (Folder)item;
 
@@ -470,7 +470,7 @@ namespace Emby.Dlna.ContentDirectory
             return new DtoOptions(true);
         }
 
-        private async Task<QueryResult<ServerItem>> GetUserItems(BaseItem item, StubType? stubType, User user, SortCriteria sort, int? startIndex, int? limit)
+        private QueryResult<ServerItem> GetUserItems(BaseItem item, StubType? stubType, User user, SortCriteria sort, int? startIndex, int? limit)
         {
             if (item is MusicGenre)
             {
@@ -518,15 +518,15 @@ namespace Emby.Dlna.ContentDirectory
                 StartIndex = startIndex,
                 User = user,
                 IsMissing = false,
-                PresetViews = new[] {CollectionType.Movies, CollectionType.TvShows, CollectionType.Music},
-                ExcludeItemTypes = new[] {typeof (Game).Name, typeof (Book).Name},
+                PresetViews = new[] { CollectionType.Movies, CollectionType.TvShows, CollectionType.Music },
+                ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name },
                 IsPlaceHolder = false,
                 DtoOptions = GetDtoOptions()
             };
 
             SetSorting(query, sort, folder.IsPreSorted);
 
-            var queryResult = await folder.GetItems(query).ConfigureAwait(false);
+            var queryResult = folder.GetItems(query);
 
             return ToResult(queryResult);
         }
@@ -557,8 +557,8 @@ namespace Emby.Dlna.ContentDirectory
             {
                 Recursive = true,
                 ParentId = parentId,
-                GenreIds = new[] {item.Id.ToString("N")},
-                IncludeItemTypes = new[] {typeof (MusicAlbum).Name},
+                GenreIds = new[] { item.Id.ToString("N") },
+                IncludeItemTypes = new[] { typeof(MusicAlbum).Name },
                 Limit = limit,
                 StartIndex = startIndex,
                 DtoOptions = GetDtoOptions()

+ 10 - 9
Emby.Dlna/Didl/DidlBuilder.cs

@@ -18,6 +18,7 @@ using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Text;
+using System.Threading.Tasks;
 using System.Xml;
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Model.Configuration;
@@ -111,14 +112,14 @@ namespace Emby.Dlna.Didl
             }
         }
 
-        public void WriteItemElement(DlnaOptions options, 
-            XmlWriter writer, 
-            BaseItem item, 
+        public void WriteItemElement(DlnaOptions options,
+            XmlWriter writer,
+            BaseItem item,
             User user,
-            BaseItem context, 
-            StubType? contextStubType, 
-            string deviceId, 
-            Filter filter, 
+            BaseItem context,
+            StubType? contextStubType,
+            string deviceId,
+            Filter filter,
             StreamInfo streamInfo = null)
         {
             var clientId = GetClientId(item, null);
@@ -920,7 +921,7 @@ namespace Emby.Dlna.Didl
 
             if (item is Video)
             {
-                var userData = _userDataManager.GetUserDataDto(item, _user).Result;
+                var userData = _userDataManager.GetUserDataDto(item, _user);
 
                 playbackPercentage = Convert.ToInt32(userData.PlayedPercentage ?? 0);
                 if (playbackPercentage >= 100 || userData.Played)
@@ -930,7 +931,7 @@ namespace Emby.Dlna.Didl
             }
             else if (item is Series || item is Season || item is BoxSet)
             {
-                var userData = _userDataManager.GetUserDataDto(item, _user).Result;
+                var userData = _userDataManager.GetUserDataDto(item, _user);
 
                 if (userData.Played)
                 {

+ 1 - 1
Emby.Drawing.ImageMagick/PlayedIndicatorDrawer.cs

@@ -5,7 +5,7 @@ using MediaBrowser.Model.Drawing;
 using System;
 using System.IO;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 1 - 1
Emby.Drawing.ImageMagick/StripCollageBuilder.cs

@@ -2,7 +2,7 @@
 using MediaBrowser.Common.Configuration;
 using System;
 using System.Collections.Generic;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 0 - 2
Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs

@@ -2,8 +2,6 @@
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Model.Drawing;
 using System.Globalization;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 
 namespace Emby.Drawing.ImageMagick

+ 1 - 1
Emby.Drawing.Skia/PlayedIndicatorDrawer.cs

@@ -5,7 +5,7 @@ using MediaBrowser.Model.Drawing;
 using System;
 using System.IO;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using System.Reflection;

+ 1 - 1
Emby.Drawing.Skia/UnplayedCountIndicator.cs

@@ -4,7 +4,7 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Model.Drawing;
 using System.Globalization;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 1 - 1
Emby.Drawing/Common/ImageHeader.cs

@@ -4,7 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 1 - 1
Emby.Drawing/ImageProcessor.cs

@@ -17,7 +17,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using Emby.Drawing.Common;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Model.Net;

+ 2 - 2
Emby.Server.Core/ApplicationHost.cs

@@ -589,7 +589,7 @@ namespace Emby.Server.Core
             FileOrganizationRepository = GetFileOrganizationRepository();
             RegisterSingleInstance(FileOrganizationRepository);
 
-            AuthenticationRepository = await GetAuthenticationRepository().ConfigureAwait(false);
+            AuthenticationRepository = GetAuthenticationRepository();
             RegisterSingleInstance(AuthenticationRepository);
 
             UserManager = new UserManager(LogManager.GetLogger("UserManager"), ServerConfigurationManager, UserRepository, XmlSerializer, NetworkManager, () => ImageProcessor, () => DtoService, () => ConnectManager, this, JsonSerializer, FileSystemManager, CryptographyProvider, _defaultUserNameFactory());
@@ -948,7 +948,7 @@ namespace Emby.Server.Core
             return repo;
         }
 
-        private async Task<IAuthenticationRepository> GetAuthenticationRepository()
+        private IAuthenticationRepository GetAuthenticationRepository()
         {
             var repo = new AuthenticationRepository(LogManager.GetLogger("AuthenticationRepository"), ServerConfigurationManager.ApplicationPaths);
 

+ 6 - 6
Emby.Server.Implementations/Channels/ChannelManager.cs

@@ -23,7 +23,7 @@ using System.Linq;
 using System.Net;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.Entities.Movies;
@@ -120,7 +120,7 @@ namespace Emby.Server.Implementations.Channels
             if (query.IsFavorite.HasValue)
             {
                 var val = query.IsFavorite.Value;
-                channels = channels.Where(i => _userDataManager.GetUserData(user,  i).IsFavorite == val)
+                channels = channels.Where(i => _userDataManager.GetUserData(user, i).IsFavorite == val)
                     .ToList();
             }
 
@@ -263,7 +263,7 @@ namespace Emby.Server.Implementations.Channels
                 }
                 catch
                 {
-                    
+
                 }
                 return;
             }
@@ -273,7 +273,7 @@ namespace Emby.Server.Implementations.Channels
             _jsonSerializer.SerializeToFile(mediaSources, path);
         }
 
-        public async Task<IEnumerable<MediaSourceInfo>> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken)
+        public IEnumerable<MediaSourceInfo> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken)
         {
             IEnumerable<ChannelMediaInfo> results = GetSavedMediaSources(item);
 
@@ -963,7 +963,7 @@ namespace Emby.Server.Implementations.Channels
                 }
             }
 
-            return await GetReturnItems(internalItems, providerTotalRecordCount, user, query).ConfigureAwait(false);
+            return GetReturnItems(internalItems, providerTotalRecordCount, user, query);
         }
 
         public async Task<QueryResult<BaseItemDto>> GetChannelItems(ChannelItemQuery query, CancellationToken cancellationToken)
@@ -1154,7 +1154,7 @@ namespace Emby.Server.Implementations.Channels
                 filename + ".json");
         }
 
-        private async Task<QueryResult<BaseItem>> GetReturnItems(IEnumerable<BaseItem> items,
+        private QueryResult<BaseItem> GetReturnItems(IEnumerable<BaseItem> items,
             int? totalCountFromProvider,
             User user,
             ChannelItemQuery query)

+ 3 - 3
Emby.Server.Implementations/Collections/CollectionImageProvider.cs

@@ -32,7 +32,7 @@ namespace Emby.Server.Implementations.Collections
             return base.Supports(item);
         }
 
-        protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var playlist = (BoxSet)item;
 
@@ -73,10 +73,10 @@ namespace Emby.Server.Implementations.Collections
                 .DistinctBy(i => i.Id)
                 .ToList();
 
-            return Task.FromResult(GetFinalItems(items, 2));
+            return GetFinalItems(items, 2);
         }
 
-        protected string CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
+        protected override string CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
         {
             return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary);
         }

+ 1 - 1
Emby.Server.Implementations/Collections/CollectionsDynamicFolder.cs

@@ -1,7 +1,7 @@
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Controller.Entities;
 using System.IO;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Collections;
 using MediaBrowser.Controller.IO;

+ 1 - 1
Emby.Server.Implementations/Devices/CameraUploadsDynamicFolder.cs

@@ -5,7 +5,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Providers;

+ 0 - 1
Emby.Server.Implementations/Devices/DeviceManager.cs

@@ -16,7 +16,6 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.IO;

+ 9 - 9
Emby.Server.Implementations/Dto/DtoService.cs

@@ -24,7 +24,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Extensions;
@@ -107,7 +107,7 @@ namespace Emby.Server.Implementations.Dto
 
             foreach (var item in items)
             {
-                var dto = await GetBaseItemDtoInternal(item, options, user, owner).ConfigureAwait(false);
+                var dto = GetBaseItemDtoInternal(item, options, user, owner);
 
                 var tvChannel = item as LiveTvChannel;
                 if (tvChannel != null)
@@ -160,7 +160,7 @@ namespace Emby.Server.Implementations.Dto
         {
             var syncDictionary = GetSyncedItemProgress(options);
 
-            var dto = GetBaseItemDtoInternal(item, options, user, owner).Result;
+            var dto = GetBaseItemDtoInternal(item, options, user, owner);
             var tvChannel = item as LiveTvChannel;
             if (tvChannel != null)
             {
@@ -292,7 +292,7 @@ namespace Emby.Server.Implementations.Dto
             }
         }
 
-        private async Task<BaseItemDto> GetBaseItemDtoInternal(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null)
+        private BaseItemDto GetBaseItemDtoInternal(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null)
         {
             var fields = options.Fields;
 
@@ -341,7 +341,7 @@ namespace Emby.Server.Implementations.Dto
 
             if (user != null)
             {
-                await AttachUserSpecificInfo(dto, item, user, options).ConfigureAwait(false);
+                AttachUserSpecificInfo(dto, item, user, options);
             }
 
             var hasMediaSources = item as IHasMediaSources;
@@ -402,7 +402,7 @@ namespace Emby.Server.Implementations.Dto
 
         public BaseItemDto GetItemByNameDto(BaseItem item, DtoOptions options, List<BaseItem> taggedItems, Dictionary<string, SyncedItemProgress> syncProgress, User user = null)
         {
-            var dto = GetBaseItemDtoInternal(item, options, user).Result;
+            var dto = GetBaseItemDtoInternal(item, options, user);
 
             if (taggedItems != null && options.Fields.Contains(ItemFields.ItemCounts))
             {
@@ -455,7 +455,7 @@ namespace Emby.Server.Implementations.Dto
         /// <summary>
         /// Attaches the user specific info.
         /// </summary>
-        private async Task AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, DtoOptions dtoOptions)
+        private void AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, DtoOptions dtoOptions)
         {
             var fields = dtoOptions.Fields;
 
@@ -465,7 +465,7 @@ namespace Emby.Server.Implementations.Dto
 
                 if (dtoOptions.EnableUserData)
                 {
-                    dto.UserData = await _userDataRepository.GetUserDataDto(item, dto, user, dtoOptions.Fields).ConfigureAwait(false);
+                    dto.UserData = _userDataRepository.GetUserDataDto(item, dto, user, dtoOptions.Fields);
                 }
 
                 if (!dto.ChildCount.HasValue && item.SourceType == SourceType.Library)
@@ -497,7 +497,7 @@ namespace Emby.Server.Implementations.Dto
             {
                 if (dtoOptions.EnableUserData)
                 {
-                    dto.UserData = await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
+                    dto.UserData = _userDataRepository.GetUserDataDto(item, user);
                 }
             }
 

+ 1 - 1
Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs

@@ -122,7 +122,7 @@ namespace Emby.Server.Implementations.EntryPoints
                         .DistinctBy(i => i.Id)
                         .Select(i =>
                         {
-                            var dto = _userDataManager.GetUserDataDto(i, user).Result;
+                            var dto = _userDataManager.GetUserDataDto(i, user);
                             dto.ItemId = i.Id.ToString("N");
                             return dto;
                         })

+ 0 - 1
Emby.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs

@@ -15,7 +15,6 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 using Emby.Server.Implementations.Library;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.IO;

+ 1 - 1
Emby.Server.Implementations/FileOrganization/FileOrganizationService.cs

@@ -17,7 +17,7 @@ using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Session;
 using MediaBrowser.Model.Events;
 using MediaBrowser.Common.Events;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.Tasks;
 

+ 1 - 1
Emby.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs

@@ -8,7 +8,7 @@ using System;
 using System.Collections.Generic;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Tasks;

+ 1 - 1
Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs

@@ -10,7 +10,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 8 - 1
Emby.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpListener.cs

@@ -34,6 +34,9 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
         private readonly bool _enableDualMode;
         private readonly IEnvironmentInfo _environment;
 
+        private CancellationTokenSource _disposeCancellationTokenSource = new CancellationTokenSource();
+        private CancellationToken _disposeCancellationToken;
+
         public WebSocketSharpListener(ILogger logger, ICertificate certificate, IMemoryStreamFactory memoryStreamProvider, ITextEncoding textEncoding, INetworkManager networkManager, ISocketFactory socketFactory, ICryptoProvider cryptoProvider, IStreamFactory streamFactory, bool enableDualMode, Func<HttpListenerContext, IHttpRequest> httpRequestFactory, IFileSystem fileSystem, IEnvironmentInfo environment)
         {
             _logger = logger;
@@ -48,6 +51,8 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
             _httpRequestFactory = httpRequestFactory;
             _fileSystem = fileSystem;
             _environment = environment;
+
+            _disposeCancellationToken = _disposeCancellationTokenSource.Token;
         }
 
         public Action<Exception, IRequest, bool> ErrorHandler { get; set; }
@@ -83,7 +88,7 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
         private void ProcessContext(HttpListenerContext context)
         {
             //Task.Factory.StartNew(() => InitTask(context), TaskCreationOptions.DenyChildAttach | TaskCreationOptions.PreferFairness);
-            Task.Run(() => InitTask(context, CancellationToken.None));
+            Task.Run(() => InitTask(context, _disposeCancellationToken));
         }
 
         private Task InitTask(HttpListenerContext context, CancellationToken cancellationToken)
@@ -173,6 +178,8 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
 
         public void Stop()
         {
+            _disposeCancellationTokenSource.Cancel();
+
             if (_listener != null)
             {
                 foreach (var prefix in _listener.Prefixes.ToList())

+ 1 - 1
Emby.Server.Implementations/HttpServer/StreamWriter.cs

@@ -5,7 +5,7 @@ using System.Globalization;
 using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.Services;
 
 namespace Emby.Server.Implementations.HttpServer

+ 1 - 1
Emby.Server.Implementations/IO/FileRefresher.cs

@@ -6,7 +6,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Common.Events;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.IO;

+ 1 - 1
Emby.Server.Implementations/IO/MbLinkShortcutHandler.cs

@@ -1,6 +1,6 @@
 using System;
 using System.IO;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 3 - 30
Emby.Server.Implementations/Images/BaseDynamicImageProvider.cs

@@ -12,7 +12,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.IO;
@@ -59,33 +59,6 @@ namespace Emby.Server.Implementations.Images
             //return GetSupportedImages(item).Where(i => IsEnabled(options, i, item)).ToList();
         }
 
-        private bool IsEnabled(MetadataOptions options, ImageType type, IHasImages item)
-        {
-            if (type == ImageType.Backdrop)
-            {
-                if (item.LockedFields.Contains(MetadataFields.Backdrops))
-                {
-                    return false;
-                }
-            }
-            else if (type == ImageType.Screenshot)
-            {
-                if (item.LockedFields.Contains(MetadataFields.Screenshots))
-                {
-                    return false;
-                }
-            }
-            else
-            {
-                if (item.LockedFields.Contains(MetadataFields.Images))
-                {
-                    return false;
-                }
-            }
-
-            return options.IsEnabled(type);
-        }
-
         public async Task<ItemUpdateType> FetchAsync(T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
         {
             if (!Supports(item))
@@ -128,7 +101,7 @@ namespace Emby.Server.Implementations.Images
                 }
             }
 
-            var items = await GetItemsWithImages(item).ConfigureAwait(false);
+            var items = GetItemsWithImages(item);
 
             return await FetchToFileInternal(item, items, imageType, cancellationToken).ConfigureAwait(false);
         }
@@ -159,7 +132,7 @@ namespace Emby.Server.Implementations.Images
             return ItemUpdateType.ImageUpdate;
         }
 
-        protected abstract Task<List<BaseItem>> GetItemsWithImages(IHasImages item);
+        protected abstract List<BaseItem> GetItemsWithImages(IHasImages item);
 
         protected string CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath)
         {

+ 1 - 1
Emby.Server.Implementations/Library/CoreResolutionIgnoreRule.cs

@@ -6,7 +6,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;

+ 1 - 1
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -40,7 +40,7 @@ using MediaBrowser.Model.Net;
 using SortOrder = MediaBrowser.Model.Entities.SortOrder;
 using VideoResolver = MediaBrowser.Naming.Video.VideoResolver;
 using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.LiveTv;
 using MediaBrowser.Model.Tasks;

+ 0 - 2
Emby.Server.Implementations/Library/ResolverHelper.cs

@@ -5,8 +5,6 @@ using System;
 using System.IO;
 using System.Linq;
 using System.Text.RegularExpressions;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 
 namespace Emby.Server.Implementations.Library

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs

@@ -8,7 +8,7 @@ using MediaBrowser.Naming.Audio;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.IO;

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/Audio/MusicArtistResolver.cs

@@ -6,7 +6,7 @@ using MediaBrowser.Model.Logging;
 using System;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.IO;

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs

@@ -11,7 +11,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/SpecialFolderResolver.cs

@@ -5,7 +5,7 @@ using MediaBrowser.Controller.Resolvers;
 using System;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs

@@ -10,7 +10,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.IO;

+ 4 - 4
Emby.Server.Implementations/Library/UserDataManager.cs

@@ -182,21 +182,21 @@ namespace Emby.Server.Implementations.Library
             return GetUserData(userId, item.Id, item.GetUserDataKeys());
         }
 
-        public async Task<UserItemDataDto> GetUserDataDto(IHasUserData item, User user)
+        public UserItemDataDto GetUserDataDto(IHasUserData item, User user)
         {
             var userData = GetUserData(user.Id, item);
             var dto = GetUserItemDataDto(userData);
 
-            await item.FillUserDataDtoValues(dto, userData, null, user, new List<ItemFields>()).ConfigureAwait(false);
+            item.FillUserDataDtoValues(dto, userData, null, user, new List<ItemFields>());
             return dto;
         }
 
-        public async Task<UserItemDataDto> GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, List<ItemFields> fields)
+        public UserItemDataDto GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, List<ItemFields> fields)
         {
             var userData = GetUserData(user.Id, item);
             var dto = GetUserItemDataDto(userData);
 
-            await item.FillUserDataDtoValues(dto, userData, itemDto, user, fields).ConfigureAwait(false);
+            item.FillUserDataDtoValues(dto, userData, itemDto, user, fields);
             return dto;
         }
 

+ 1 - 1
Emby.Server.Implementations/Library/Validators/PeopleValidator.cs

@@ -11,7 +11,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs

@@ -3,7 +3,7 @@ using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.Library;

+ 4 - 4
Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -28,7 +28,7 @@ using System.Xml;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Common.Events;
 using MediaBrowser.Common.Extensions;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.Entities;
@@ -1636,7 +1636,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                     return;
                 }
 
-                var episodesToDelete = (await librarySeries.GetItems(new InternalItemsQuery
+                var episodesToDelete = (librarySeries.GetItems(new InternalItemsQuery
                 {
                     SortBy = new[] { ItemSortBy.DateCreated },
                     SortOrder = SortOrder.Descending,
@@ -1645,7 +1645,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                     Recursive = true,
                     DtoOptions = new DtoOptions(true)
 
-                }).ConfigureAwait(false))
+                }))
                     .Items
                     .Where(i => i.LocationType == LocationType.FileSystem && _fileSystem.FileExists(i.Path))
                     .Skip(seriesTimer.KeepUpTo - 1)
@@ -1785,7 +1785,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             throw new InvalidOperationException("Emby DVR Requires an active Emby Premiere subscription.");
         }
 
-        private async void OnSuccessfulRecording(TimerInfo timer, string path)
+        private void OnSuccessfulRecording(TimerInfo timer, string path)
         {
             //if (timer.IsProgramSeries && GetConfiguration().EnableAutoOrganize)
             //{

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs

@@ -8,7 +8,7 @@ using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.Configuration;

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs

@@ -4,7 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

+ 0 - 2
Emby.Server.Implementations/LiveTv/EmbyTV/SeriesTimerManager.cs

@@ -2,8 +2,6 @@
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Serialization;
 using System;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 
 namespace Emby.Server.Implementations.LiveTv.EmbyTV

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/TimerManager.cs

@@ -8,7 +8,7 @@ using System.Collections.Concurrent;
 using System.Globalization;
 using System.Linq;
 using System.Threading;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.LiveTv;

+ 1 - 1
Emby.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -26,7 +26,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Common.Events;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Common.Security;
 using MediaBrowser.Controller.Entities.Movies;
 using MediaBrowser.Controller.Entities.TV;

+ 4 - 1
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunManager.cs

@@ -115,7 +115,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
 
             var lockkeyMsg = CreateGetMessage(tuner, "lockkey");
             await socket.SendToAsync(lockkeyMsg, 0, lockkeyMsg.Length, ipEndPoint, cancellationToken);
-            var response = await socket.ReceiveAsync(cancellationToken).ConfigureAwait(false);
+
+            var receiveBuffer = new byte[8192];
+            var response = await socket.ReceiveAsync(receiveBuffer, 0, receiveBuffer.Length, cancellationToken).ConfigureAwait(false);
+
             string returnVal;
             ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal);
 

+ 1 - 1
Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs

@@ -11,7 +11,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller;

+ 0 - 1
Emby.Server.Implementations/LiveTv/TunerHosts/M3uParser.cs

@@ -8,7 +8,6 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Common.Extensions;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller.IO;

+ 1 - 1
Emby.Server.Implementations/MediaEncoder/EncodingManager.cs

@@ -13,7 +13,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Library;

+ 3 - 1
Emby.Server.Implementations/Migrations/GuideMigration.cs

@@ -25,7 +25,7 @@ namespace Emby.Server.Implementations.Migrations
             _taskManager = taskManager;
         }
 
-        public async Task Run()
+        public Task Run()
         {
             var name = "GuideRefresh3";
 
@@ -42,6 +42,8 @@ namespace Emby.Server.Implementations.Migrations
                 _config.Configuration.Migrations = list.ToArray();
                 _config.SaveConfiguration();
             }
+
+            return Task.FromResult(true);
         }
     }
 }

+ 3 - 1
Emby.Server.Implementations/Migrations/LibraryScanMigration.cs

@@ -25,7 +25,7 @@ namespace Emby.Server.Implementations.Migrations
             _taskManager = taskManager;
         }
 
-        public async Task Run()
+        public Task Run()
         {
             var name = "LibraryScan6";
 
@@ -42,6 +42,8 @@ namespace Emby.Server.Implementations.Migrations
                 _config.Configuration.Migrations = list.ToArray();
                 _config.SaveConfiguration();
             }
+
+            return Task.FromResult(true);
         }
     }
 }

+ 2 - 2
Emby.Server.Implementations/Photos/PhotoAlbumImageProvider.cs

@@ -18,12 +18,12 @@ namespace Emby.Server.Implementations.Photos
         {
         }
 
-        protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var photoAlbum = (PhotoAlbum)item;
             var items = GetFinalItems(photoAlbum.Children.ToList());
 
-            return Task.FromResult(items);
+            return items;
         }
 
         protected string CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)

+ 7 - 7
Emby.Server.Implementations/Playlists/PlaylistImageProvider.cs

@@ -10,7 +10,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
 using Emby.Server.Implementations.Images;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.Entities.Movies;
 using MediaBrowser.Controller.IO;
@@ -27,7 +27,7 @@ namespace Emby.Server.Implementations.Playlists
         {
         }
 
-        protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var playlist = (Playlist)item;
 
@@ -68,7 +68,7 @@ namespace Emby.Server.Implementations.Playlists
                 .DistinctBy(i => i.Id)
                 .ToList();
 
-            return Task.FromResult(GetFinalItems(items));
+            return GetFinalItems(items);
         }
     }
 
@@ -81,7 +81,7 @@ namespace Emby.Server.Implementations.Playlists
             _libraryManager = libraryManager;
         }
 
-        protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var items = _libraryManager.GetItemList(new InternalItemsQuery
             {
@@ -95,7 +95,7 @@ namespace Emby.Server.Implementations.Playlists
 
             }).ToList();
 
-            return Task.FromResult(GetFinalItems(items));
+            return GetFinalItems(items);
         }
 
         //protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
@@ -113,7 +113,7 @@ namespace Emby.Server.Implementations.Playlists
             _libraryManager = libraryManager;
         }
 
-        protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var items = _libraryManager.GetItemList(new InternalItemsQuery
             {
@@ -127,7 +127,7 @@ namespace Emby.Server.Implementations.Playlists
 
             }).ToList();
 
-            return Task.FromResult(GetFinalItems(items));
+            return GetFinalItems(items);
         }
 
         //protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)

+ 4 - 4
Emby.Server.Implementations/Playlists/PlaylistManager.cs

@@ -12,7 +12,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
@@ -164,7 +164,7 @@ namespace Emby.Server.Implementations.Playlists
             return path;
         }
 
-        private Task<IEnumerable<BaseItem>> GetPlaylistItems(IEnumerable<string> itemIds, string playlistMediaType, User user, DtoOptions options)
+        private IEnumerable<BaseItem> GetPlaylistItems(IEnumerable<string> itemIds, string playlistMediaType, User user, DtoOptions options)
         {
             var items = itemIds.Select(i => _libraryManager.GetItemById(i)).Where(i => i != null);
 
@@ -192,7 +192,7 @@ namespace Emby.Server.Implementations.Playlists
 
             var list = new List<LinkedChild>();
 
-            var items = (await GetPlaylistItems(itemIds, playlist.MediaType, user, options).ConfigureAwait(false))
+            var items = (GetPlaylistItems(itemIds, playlist.MediaType, user, options))
                 .Where(i => i.SupportsAddingToPlaylist)
                 .ToList();
 
@@ -278,7 +278,7 @@ namespace Emby.Server.Implementations.Playlists
         {
             var typeName = "PlaylistsFolder";
 
-            return _libraryManager.RootFolder.Children.OfType<Folder>().FirstOrDefault(i => string.Equals(i.GetType().Name, typeName, StringComparison.Ordinal)) ?? 
+            return _libraryManager.RootFolder.Children.OfType<Folder>().FirstOrDefault(i => string.Equals(i.GetType().Name, typeName, StringComparison.Ordinal)) ??
                 _libraryManager.GetUserRootFolder().Children.OfType<Folder>().FirstOrDefault(i => string.Equals(i.GetType().Name, typeName, StringComparison.Ordinal));
         }
     }

+ 0 - 1
Emby.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs

@@ -10,7 +10,6 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;

+ 1 - 1
Emby.Server.Implementations/ScheduledTasks/RefreshIntrosTask.cs

@@ -4,7 +4,7 @@ using System;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 

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

@@ -12,7 +12,7 @@ using System.Collections.Specialized;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Text;

+ 0 - 1
Emby.Server.Implementations/ServerManager/WebSocketConnection.cs

@@ -9,7 +9,6 @@ using System.Collections.Specialized;
 using System.IO;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Text;

+ 2 - 2
Emby.Server.Implementations/Services/ResponseHelper.cs

@@ -124,7 +124,7 @@ namespace Emby.Server.Implementations.Services
                 response.ContentType = "application/octet-stream";
                 response.SetContentLength(bytes.Length);
 
-                await response.OutputStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
+                await response.OutputStream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false);
                 return;
             }
 
@@ -133,7 +133,7 @@ namespace Emby.Server.Implementations.Services
             {
                 bytes = Encoding.UTF8.GetBytes(responseText);
                 response.SetContentLength(bytes.Length);
-                await response.OutputStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
+                await response.OutputStream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false);
                 return;
             }
 

+ 2 - 4
Emby.Server.Implementations/Services/ServiceController.cs

@@ -187,7 +187,7 @@ namespace Emby.Server.Implementations.Services
             return null;
         }
 
-        public async Task<object> Execute(HttpListenerHost appHost, object requestDto, IRequest req)
+        public Task<object> Execute(HttpListenerHost appHost, object requestDto, IRequest req)
         {
             req.Dto = requestDto;
             var requestType = requestDto.GetType();
@@ -209,9 +209,7 @@ namespace Emby.Server.Implementations.Services
                 req.Dto = requestDto;
 
             //Executes the service and returns the result
-            var response = await ServiceExecGeneral.Execute(serviceType, req, service, requestDto, requestType.GetMethodName()).ConfigureAwait(false);
-
-            return response;
+            return ServiceExecGeneral.Execute(serviceType, req, service, requestDto, requestType.GetMethodName());
         }
     }
 

+ 2 - 1
Emby.Server.Implementations/Services/ServiceHandler.cs

@@ -143,7 +143,8 @@ namespace Emby.Server.Implementations.Services
 
             var rawResponse = await appHost.ServiceController.Execute(appHost, request, httpReq).ConfigureAwait(false);
 
-            var response = await HandleResponseAsync(rawResponse).ConfigureAwait(false);
+            //var response = await HandleResponseAsync(rawResponse).ConfigureAwait(false);
+            var response = rawResponse;
 
             // Apply response filters
             foreach (var responseFilter in appHost.ResponseFilters)

+ 4 - 4
Emby.Server.Implementations/Session/SessionManager.cs

@@ -985,7 +985,7 @@ namespace Emby.Server.Implementations.Session
                 var list = new List<BaseItem>();
                 foreach (var itemId in command.ItemIds)
                 {
-                    var subItems = await TranslateItemForPlayback(itemId, user).ConfigureAwait(false);
+                    var subItems = TranslateItemForPlayback(itemId, user);
                     list.AddRange(subItems);
                 }
 
@@ -1052,7 +1052,7 @@ namespace Emby.Server.Implementations.Session
             await session.SessionController.SendPlayCommand(command, cancellationToken).ConfigureAwait(false);
         }
 
-        private async Task<List<BaseItem>> TranslateItemForPlayback(string id, User user)
+        private List<BaseItem> TranslateItemForPlayback(string id, User user)
         {
             var item = _libraryManager.GetItemById(id);
 
@@ -1089,7 +1089,7 @@ namespace Emby.Server.Implementations.Session
             {
                 var folder = (Folder)item;
 
-                var itemsResult = await folder.GetItems(new InternalItemsQuery(user)
+                var itemsResult = folder.GetItems(new InternalItemsQuery(user)
                 {
                     Recursive = true,
                     IsFolder = false,
@@ -1102,7 +1102,7 @@ namespace Emby.Server.Implementations.Session
                         }
                     }
 
-                }).ConfigureAwait(false);
+                });
 
                 return FilterToSingleMediaType(itemsResult.Items)
                     .OrderBy(i => i.SortName)

+ 0 - 23
Emby.Server.Implementations/Session/SessionWebSocketListener.cs

@@ -57,7 +57,6 @@ namespace Emby.Server.Implementations.Session
             _json = json;
             _httpServer = httpServer;
             _serverManager = serverManager;
-            httpServer.WebSocketConnecting += _httpServer_WebSocketConnecting;
             serverManager.WebSocketConnected += _serverManager_WebSocketConnected;
         }
 
@@ -84,27 +83,6 @@ namespace Emby.Server.Implementations.Session
             }
         }
 
-        async void _httpServer_WebSocketConnecting(object sender, WebSocketConnectingEventArgs e)
-        {
-            //var token = e.QueryString["api_key"];
-            //if (!string.IsNullOrWhiteSpace(token))
-            //{
-            //    try
-            //    {
-            //        var session = await GetSession(e.QueryString, e.Endpoint).ConfigureAwait(false);
-
-            //        if (session == null)
-            //        {
-            //            e.AllowConnection = false;
-            //        }
-            //    }
-            //    catch (Exception ex)
-            //    {
-            //        _logger.ErrorException("Error getting session info", ex);
-            //    }
-            //}
-        }
-
         private Task<SessionInfo> GetSession(QueryParamCollection queryString, string remoteEndpoint)
         {
             if (queryString == null)
@@ -123,7 +101,6 @@ namespace Emby.Server.Implementations.Session
 
         public void Dispose()
         {
-            _httpServer.WebSocketConnecting -= _httpServer_WebSocketConnecting;
             _serverManager.WebSocketConnected -= _serverManager_WebSocketConnected;
         }
 

+ 4 - 5
Emby.Server.Implementations/UserViews/CollectionFolderImageProvider.cs

@@ -11,7 +11,6 @@ using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
 using Emby.Server.Implementations.Images;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Collections;
 using MediaBrowser.Controller.Dto;
@@ -37,20 +36,20 @@ namespace Emby.Server.Implementations.UserViews
                 };
         }
 
-        protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var view = (CollectionFolder)item;
 
             var recursive = !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
 
-            var result = await view.GetItems(new InternalItemsQuery
+            var result = view.GetItems(new InternalItemsQuery
             {
                 CollapseBoxSetItems = false,
                 Recursive = recursive,
                 ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" },
                 DtoOptions = new DtoOptions(false)
 
-            }).ConfigureAwait(false);
+            });
 
             var items = result.Items.Select(i =>
             {
@@ -135,7 +134,7 @@ namespace Emby.Server.Implementations.UserViews
                 };
         }
 
-        protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var view = (ManualCollectionsFolder)item;
 

+ 4 - 5
Emby.Server.Implementations/UserViews/DynamicImageProvider.cs

@@ -48,7 +48,7 @@ namespace Emby.Server.Implementations.UserViews
             };
         }
 
-        protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
+        protected override List<BaseItem> GetItemsWithImages(IHasImages item)
         {
             var view = (UserView)item;
 
@@ -70,7 +70,7 @@ namespace Emby.Server.Implementations.UserViews
             if (string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
                 string.Equals(view.ViewType, SpecialFolder.TvGenre, StringComparison.OrdinalIgnoreCase))
             {
-                var userItemsResult = await view.GetItems(new InternalItemsQuery
+                var userItemsResult = view.GetItems(new InternalItemsQuery
                 {
                     CollapseBoxSetItems = false,
                     DtoOptions = new DtoOptions(false)
@@ -82,15 +82,14 @@ namespace Emby.Server.Implementations.UserViews
             var isUsingCollectionStrip = IsUsingCollectionStrip(view);
             var recursive = isUsingCollectionStrip && !new[] { CollectionType.Channels, CollectionType.BoxSets, CollectionType.Playlists }.Contains(view.ViewType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
 
-            var result = await view.GetItems(new InternalItemsQuery
+            var result = view.GetItems(new InternalItemsQuery
             {
                 User = view.UserId.HasValue ? _userManager.GetUserById(view.UserId.Value) : null,
                 CollapseBoxSetItems = false,
                 Recursive = recursive,
                 ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Person" },
                 DtoOptions = new DtoOptions(false)
-
-            }).ConfigureAwait(false);
+            });
 
             var items = result.Items.Select(i =>
             {

+ 2 - 2
MediaBrowser.Api/ApiEntryPoint.cs

@@ -15,7 +15,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Model.Diagnostics;
@@ -399,7 +399,7 @@ namespace MediaBrowser.Api
             }
         }
 
-        private async void PingTimer(TranscodingJob job, bool isProgressCheckIn)
+        private void PingTimer(TranscodingJob job, bool isProgressCheckIn)
         {
             if (job.HasExited)
             {

+ 2 - 3
MediaBrowser.Api/ConfigurationService.cs

@@ -8,7 +8,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.MediaEncoding;
@@ -113,8 +113,7 @@ namespace MediaBrowser.Api
 
         public void Post(UpdateMediaEncoderPath request)
         {
-            var task = _mediaEncoder.UpdateEncoderPath(request.Path, request.PathType);
-            Task.WaitAll(task);
+            _mediaEncoder.UpdateEncoderPath(request.Path, request.PathType);
         }
 
         /// <summary>

+ 1 - 1
MediaBrowser.Api/Dlna/DlnaServerService.cs

@@ -5,7 +5,7 @@ using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;

+ 2 - 2
MediaBrowser.Api/FilterService.cs

@@ -52,7 +52,7 @@ namespace MediaBrowser.Api
             _userManager = userManager;
         }
 
-        public async Task<object> Get(GetQueryFilters request)
+        public object Get(GetQueryFilters request)
         {
             var parentItem = string.IsNullOrEmpty(request.ParentId) ? null : _libraryManager.GetItemById(request.ParentId);
             var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
@@ -61,7 +61,7 @@ namespace MediaBrowser.Api
                user == null ? _libraryManager.RootFolder : user.RootFolder :
                parentItem;
 
-            var result = await ((Folder)item).GetItems(GetItemsQuery(request, user));
+            var result = ((Folder)item).GetItems(GetItemsQuery(request, user));
 
             return ToOptimizedResult(GetFilters(result.Items));
         }

+ 0 - 2
MediaBrowser.Api/Images/ImageByNameService.cs

@@ -8,8 +8,6 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;
 

+ 1 - 1
MediaBrowser.Api/Images/ImageService.cs

@@ -14,7 +14,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;

+ 1 - 6
MediaBrowser.Api/Images/RemoteImageService.cs

@@ -14,7 +14,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;
@@ -141,11 +141,6 @@ namespace MediaBrowser.Api.Images
         {
             var item = _libraryManager.GetItemById(request.Id);
 
-            return await GetRemoteImageResult(item, request).ConfigureAwait(false);
-        }
-
-        private async Task<RemoteImageResult> GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request)
-        {
             var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
             {
                 ProviderName = request.ProviderName,

+ 1 - 1
MediaBrowser.Api/ItemRefreshService.cs

@@ -3,7 +3,7 @@ using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Controller.Providers;
 using System.Threading;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Logging;

+ 1 - 1
MediaBrowser.Api/Library/LibraryService.cs

@@ -21,7 +21,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.IO;

+ 1 - 1
MediaBrowser.Api/Library/LibraryStructureService.cs

@@ -8,7 +8,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities;

+ 1 - 1
MediaBrowser.Api/LiveTv/LiveTvService.cs

@@ -17,7 +17,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Api.Playback.Progressive;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities.TV;
 using MediaBrowser.Controller.IO;

+ 1 - 1
MediaBrowser.Api/Playback/Hls/HlsSegmentService.cs

@@ -5,7 +5,7 @@ using System;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;

+ 0 - 2
MediaBrowser.Api/Playback/Progressive/AudioService.cs

@@ -9,8 +9,6 @@ using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Serialization;
 using System.Collections.Generic;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
-using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.Net;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;

+ 1 - 1
MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs

@@ -6,7 +6,7 @@ using System.Threading.Tasks;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Controller.Net;
 using System.Collections.Generic;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Model.Services;

+ 12 - 12
MediaBrowser.Api/Reports/ReportsService.cs

@@ -67,7 +67,7 @@ namespace MediaBrowser.Api.Reports
         /// <summary> Gets the given request. </summary>
         /// <param name="request"> The request. </param>
         /// <returns> A Task&lt;object&gt; </returns>
-        public async Task<object> Get(GetReportHeaders request)
+        public object Get(GetReportHeaders request)
         {
             if (string.IsNullOrEmpty(request.IncludeItemTypes))
                 return null;
@@ -95,14 +95,14 @@ namespace MediaBrowser.Api.Reports
         /// <summary> Gets the given request. </summary>
         /// <param name="request"> The request. </param>
         /// <returns> A Task&lt;object&gt; </returns>
-        public async Task<object> Get(GetItemReport request)
+        public object Get(GetItemReport request)
         {
             if (string.IsNullOrEmpty(request.IncludeItemTypes))
                 return null;
 
             request.DisplayType = "Screen";
             var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
-            var reportResult = await GetReportResult(request, user);
+            var reportResult = GetReportResult(request, user);
 
             return ToOptimizedResult(reportResult);
         }
@@ -110,7 +110,7 @@ namespace MediaBrowser.Api.Reports
         /// <summary> Gets the given request. </summary>
         /// <param name="request"> The request. </param>
         /// <returns> A Task&lt;object&gt; </returns>
-        public async Task<object> Get(GetReportDownload request)
+        public object Get(GetReportDownload request)
         {
             if (string.IsNullOrEmpty(request.IncludeItemTypes))
                 return null;
@@ -142,7 +142,7 @@ namespace MediaBrowser.Api.Reports
                 case ReportViewType.ReportData:
                     ReportIncludeItemTypes reportRowType = ReportHelper.GetRowType(request.IncludeItemTypes);
                     ReportBuilder dataBuilder = new ReportBuilder(_libraryManager);
-                    QueryResult<BaseItem> queryResult = await GetQueryResult(request, user).ConfigureAwait(false);
+                    QueryResult<BaseItem> queryResult = GetQueryResult(request, user);
                     result = dataBuilder.GetResult(queryResult.Items, request);
                     result.TotalRecordCount = queryResult.TotalRecordCount;
                     break;
@@ -314,7 +314,7 @@ namespace MediaBrowser.Api.Reports
             return query;
         }
 
-        private async Task<QueryResult<BaseItem>> GetQueryResult(BaseReportRequest request, User user)
+        private QueryResult<BaseItem> GetQueryResult(BaseReportRequest request, User user)
         {
             // all report queries currently need this because it's not being specified
             request.Recursive = true;
@@ -344,7 +344,7 @@ namespace MediaBrowser.Api.Reports
             {
                 request.Recursive = true;
                 var query = GetItemsQuery(request, user);
-                var result = await folder.GetItems(query).ConfigureAwait(false);
+                var result = folder.GetItems(query);
 
                 if (string.IsNullOrWhiteSpace(request.SortBy))
                 {
@@ -359,19 +359,19 @@ namespace MediaBrowser.Api.Reports
 
             if (request.Recursive)
             {
-                return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false);
+                return folder.GetItems(GetItemsQuery(request, user));
             }
 
             if (user == null)
             {
-                return await folder.GetItems(GetItemsQuery(request, null)).ConfigureAwait(false);
+                return folder.GetItems(GetItemsQuery(request, null));
             }
 
             var userRoot = item as UserRootFolder;
 
             if (userRoot == null)
             {
-                return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false);
+                return folder.GetItems(GetItemsQuery(request, user));
             }
 
             IEnumerable<BaseItem> items = folder.GetChildren(user, true);
@@ -412,10 +412,10 @@ namespace MediaBrowser.Api.Reports
         /// <summary> Gets report result. </summary>
         /// <param name="request"> The request. </param>
         /// <returns> The report result. </returns>
-        private async Task<ReportResult> GetReportResult(GetItemReport request, User user)
+        private ReportResult GetReportResult(GetItemReport request, User user)
         {
             ReportBuilder reportBuilder = new ReportBuilder(_libraryManager);
-            QueryResult<BaseItem> queryResult = await GetQueryResult(request, user).ConfigureAwait(false);
+            QueryResult<BaseItem> queryResult = GetQueryResult(request, user);
             ReportResult reportResult = reportBuilder.GetResult(queryResult.Items, request);
             reportResult.TotalRecordCount = queryResult.TotalRecordCount;
 

+ 1 - 1
MediaBrowser.Api/Subtitles/SubtitleService.cs

@@ -14,7 +14,7 @@ using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Services;

+ 1 - 1
MediaBrowser.Api/System/SystemService.cs

@@ -9,7 +9,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Net;

+ 2 - 2
MediaBrowser.Api/TvShowsService.cs

@@ -432,14 +432,14 @@ namespace MediaBrowser.Api
                 throw new ResourceNotFoundException("Series not found");
             }
 
-            var seasons = (await series.GetItems(new InternalItemsQuery(user)
+            var seasons = (series.GetItems(new InternalItemsQuery(user)
             {
                 IsMissing = request.IsMissing,
                 IsVirtualUnaired = request.IsVirtualUnaired,
                 IsSpecialSeason = request.IsSpecialSeason,
                 AdjacentTo = request.AdjacentTo
 
-            }).ConfigureAwait(false)).Items.OfType<Season>();
+            })).Items.OfType<Season>();
 
             var dtoOptions = GetDtoOptions(_authContext, request);
 

+ 4 - 4
MediaBrowser.Api/UserLibrary/ItemsService.cs

@@ -105,7 +105,7 @@ namespace MediaBrowser.Api.UserLibrary
 
             var dtoOptions = GetDtoOptions(_authContext, request);
 
-            var result = await GetQueryResult(request, dtoOptions, user).ConfigureAwait(false);
+            var result = GetQueryResult(request, dtoOptions, user);
 
             if (result == null)
             {
@@ -134,7 +134,7 @@ namespace MediaBrowser.Api.UserLibrary
         /// <summary>
         /// Gets the items to serialize.
         /// </summary>
-        private async Task<QueryResult<BaseItem>> GetQueryResult(GetItems request, DtoOptions dtoOptions, User user)
+        private QueryResult<BaseItem> GetQueryResult(GetItems request, DtoOptions dtoOptions, User user)
         {
             var item = string.IsNullOrEmpty(request.ParentId) ?
                 null :
@@ -169,14 +169,14 @@ namespace MediaBrowser.Api.UserLibrary
 
             if (request.Recursive || !string.IsNullOrEmpty(request.Ids) || user == null)
             {
-                return await folder.GetItems(GetItemsQuery(request, dtoOptions, user)).ConfigureAwait(false);
+                return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
             }
 
             var userRoot = item as UserRootFolder;
 
             if (userRoot == null)
             {
-                return await folder.GetItems(GetItemsQuery(request, dtoOptions, user)).ConfigureAwait(false);
+                return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
             }
 
             IEnumerable<BaseItem> items = folder.GetChildren(user, true);

+ 1 - 1
MediaBrowser.Api/UserLibrary/PlaystateService.cs

@@ -427,7 +427,7 @@ namespace MediaBrowser.Api.UserLibrary
                 await item.MarkUnplayed(user).ConfigureAwait(false);
             }
 
-            return await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
+            return _userDataRepository.GetUserDataDto(item, user);
         }
     }
 }

+ 2 - 3
MediaBrowser.Api/UserLibrary/UserLibraryService.cs

@@ -11,7 +11,6 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Controller.Entities.Audio;
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
@@ -542,7 +541,7 @@ namespace MediaBrowser.Api.UserLibrary
 
             await _userDataRepository.SaveUserData(user.Id, item, data, UserDataSaveReason.UpdateUserRating, CancellationToken.None).ConfigureAwait(false);
 
-            return await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
+            return _userDataRepository.GetUserDataDto(item, user);
         }
 
         /// <summary>
@@ -587,7 +586,7 @@ namespace MediaBrowser.Api.UserLibrary
 
             await _userDataRepository.SaveUserData(user.Id, item, data, UserDataSaveReason.UpdateUserRating, CancellationToken.None).ConfigureAwait(false);
 
-            return await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
+            return _userDataRepository.GetUserDataDto(item, user);
         }
     }
 }

+ 1 - 1
MediaBrowser.Api/UserLibrary/UserViewsService.cs

@@ -103,7 +103,7 @@ namespace MediaBrowser.Api.UserLibrary
             return ToOptimizedResult(result);
         }
 
-        public async Task<object> Get(GetGroupingOptions request)
+        public object Get(GetGroupingOptions request)
         {
             var user = _userManager.GetUserById(request.UserId);
 

+ 1 - 1
MediaBrowser.Api/VideosService.cs

@@ -9,7 +9,7 @@ using System;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.IO;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Dto;

+ 1 - 1
MediaBrowser.Common/MediaBrowser.Common.csproj

@@ -47,7 +47,6 @@
     <Compile Include="Extensions\BaseExtensions.cs" />
     <Compile Include="Extensions\ResourceNotFoundException.cs" />
     <Compile Include="IDependencyContainer.cs" />
-    <Compile Include="IO\ProgressStream.cs" />
     <Compile Include="Configuration\IApplicationPaths.cs" />
     <Compile Include="Net\HttpRequestOptions.cs" />
     <Compile Include="Net\HttpResponseInfo.cs" />
@@ -76,6 +75,7 @@
   <ItemGroup>
     <None Include="project.json" />
   </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
   <PropertyGroup>
     <PostBuildEvent />

+ 3 - 3
MediaBrowser.Controller/Channels/Channel.cs

@@ -38,12 +38,12 @@ namespace MediaBrowser.Controller.Channels
             set { }
         }
 
-        protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
+        protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
         {
             try
             {
                 // Don't blow up here because it could cause parent screens with other content to fail
-                return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
+                return ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
                 {
                     ChannelId = Id.ToString("N"),
                     Limit = query.Limit,
@@ -52,7 +52,7 @@ namespace MediaBrowser.Controller.Channels
                     SortBy = query.SortBy,
                     SortOrder = query.SortOrder
 
-                }, new Progress<double>(), CancellationToken.None);
+                }, new Progress<double>(), CancellationToken.None).Result;
             }
             catch
             {

+ 1 - 1
MediaBrowser.Controller/Channels/IChannelManager.cs

@@ -110,7 +110,7 @@ namespace MediaBrowser.Controller.Channels
         /// <param name="item">The item.</param>
         /// <param name="cancellationToken">The cancellation token.</param>
         /// <returns>Task{IEnumerable{MediaSourceInfo}}.</returns>
-        Task<IEnumerable<MediaSourceInfo>> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken);
+        IEnumerable<MediaSourceInfo> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken);
 
         /// <summary>
         /// Gets the channel folder.

+ 0 - 1
MediaBrowser.Controller/Entities/AggregateFolder.cs

@@ -6,7 +6,6 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Serialization;

+ 1 - 1
MediaBrowser.Controller/Entities/Audio/Audio.cs

@@ -209,7 +209,7 @@ namespace MediaBrowser.Controller.Entities.Audio
             if (SourceType == SourceType.Channel)
             {
                 var sources = ChannelManager.GetStaticMediaSources(this, CancellationToken.None)
-                           .Result.ToList();
+                           .ToList();
 
                 if (sources.Count > 0)
                 {

+ 2 - 4
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -21,7 +21,7 @@ using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Dto;
 using MediaBrowser.Controller.Extensions;
 using MediaBrowser.Controller.IO;
@@ -2253,7 +2253,7 @@ namespace MediaBrowser.Controller.Entities
             return path;
         }
 
-        public virtual Task FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields)
+        public virtual void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields)
         {
             if (RunTimeTicks.HasValue)
             {
@@ -2269,8 +2269,6 @@ namespace MediaBrowser.Controller.Entities
                     }
                 }
             }
-
-            return Task.FromResult(true);
         }
 
         protected Task RefreshMetadataForOwnedItem(BaseItem ownedItem, bool copyTitleMetadata, MetadataRefreshOptions options, CancellationToken cancellationToken)

+ 1 - 1
MediaBrowser.Controller/Entities/CollectionFolder.cs

@@ -7,7 +7,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
-using MediaBrowser.Common.IO;
+
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.Extensions;

Some files were not shown because too many files changed in this diff