From 51b3c32e2cc84778212531d72665d2c5f567f34a Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Tue, 26 Feb 2013 16:05:52 -0500 Subject: [PATCH] a little more consolidation --- MediaBrowser.Api/EnvironmentService.cs | 4 +- MediaBrowser.Api/Images/ImageService.cs | 2 +- .../Javascript/JavascriptApiClientService.cs | 2 +- MediaBrowser.Api/Library/LibraryService.cs | 4 +- .../Library/LibraryStructureService.cs | 4 +- MediaBrowser.Api/LocalizationService.cs | 4 +- MediaBrowser.Api/MediaBrowser.Api.csproj | 8 +- MediaBrowser.Api/PackageService.cs | 2 +- MediaBrowser.Api/PluginService.cs | 2 +- .../ScheduledTasks/ScheduledTaskService.cs | 2 +- MediaBrowser.Api/SystemService.cs | 2 +- .../UserLibrary/BaseItemsByNameService.cs | 4 +- MediaBrowser.Api/UserLibrary/ItemsService.cs | 4 +- .../UserLibrary/UserLibraryService.cs | 4 +- MediaBrowser.Api/UserService.cs | 2 +- MediaBrowser.Api/WeatherService.cs | 4 +- .../HttpClientManager/HttpClientManager.cs | 18 +- .../HttpServer/BaseRestService.cs | 3 +- .../HttpServer/HttpServer.cs | 2 +- .../HttpServer/NativeWebSocket.cs | 2 +- .../HttpServer/ServerFactory.cs | 2 +- ...MediaBrowser.Common.Implementations.csproj | 79 +- .../NetworkManagement}/NativeMethods.cs | 6 +- .../NetworkManagement}/NetworkManager.cs | 6 +- .../NetworkManagement}/NetworkShares.cs | 2 +- .../README.txt | 41 + .../RegisterServer.bat | 0 .../ServerManager.cs | 4 +- .../WebSocketConnection.cs | 2 +- .../Udp/UdpServer.cs | 6 +- .../WebSocket/AlchemyServer.cs | 2 +- .../WebSocket/AlchemyWebSocket.cs | 2 +- .../packages.config | 10 + .../swagger-ui/css/screen.css | 959 ++++++++++++ .../swagger-ui/images/pet_store_api.png | Bin 0 -> 824 bytes .../swagger-ui/images/wordnik_api.png | Bin 0 -> 980 bytes .../swagger-ui/index.html | 88 ++ .../swagger-ui/lib/backbone-min.js | 38 + .../lib/handlebars.runtime-1.0.0.beta.6.js | 223 +++ .../swagger-ui/lib/jquery.ba-bbq.min.js | 18 + .../swagger-ui/lib/jquery.min.js | 4 + .../swagger-ui/lib/jquery.slideto.min.js | 1 + .../swagger-ui/lib/jquery.wiggle.min.js | 8 + .../swagger-ui/lib/swagger.js | 507 +++++++ .../swagger-ui/lib/underscore-min.js | 32 + .../swagger-ui/swagger-ui.js | 1309 +++++++++++++++++ .../swagger-ui/swagger-ui.min.js | 1 + .../MediaBrowser.Networking.csproj | 11 - .../ApplicationHost.cs | 14 +- .../MediaBrowser.ServerApplication.csproj | 4 - .../Api/DashboardService.cs | 2 +- .../MediaBrowser.WebDashboard.csproj | 8 +- MediaBrowser.sln | 16 - Nuget/MediaBrowser.Common.Internal.nuspec | 1 - 54 files changed, 3382 insertions(+), 103 deletions(-) rename MediaBrowser.Networking/HttpManager/HttpManager.cs => MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs (96%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/HttpServer/BaseRestService.cs (99%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/HttpServer/HttpServer.cs (99%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/HttpServer/NativeWebSocket.cs (98%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/HttpServer/ServerFactory.cs (94%) rename {MediaBrowser.Networking/Management => MediaBrowser.Common.Implementations/NetworkManagement}/NativeMethods.cs (94%) rename {MediaBrowser.Networking/Management => MediaBrowser.Common.Implementations/NetworkManagement}/NetworkManager.cs (99%) rename {MediaBrowser.Networking/Management => MediaBrowser.Common.Implementations/NetworkManagement}/NetworkShares.cs (99%) create mode 100644 MediaBrowser.Common.Implementations/README.txt rename MediaBrowser.Common.Implementations/{Server => ServerManager}/RegisterServer.bat (100%) rename MediaBrowser.Common.Implementations/{Server => ServerManager}/ServerManager.cs (99%) rename MediaBrowser.Common.Implementations/{Server => ServerManager}/WebSocketConnection.cs (99%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/Udp/UdpServer.cs (97%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/WebSocket/AlchemyServer.cs (98%) rename {MediaBrowser.Networking => MediaBrowser.Common.Implementations}/WebSocket/AlchemyWebSocket.cs (98%) create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/css/screen.css create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/images/pet_store_api.png create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/images/wordnik_api.png create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/index.html create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/backbone-min.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/handlebars.runtime-1.0.0.beta.6.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/jquery.ba-bbq.min.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/jquery.min.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/jquery.slideto.min.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/jquery.wiggle.min.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/swagger.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/lib/underscore-min.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/swagger-ui.js create mode 100644 MediaBrowser.Common.Implementations/swagger-ui/swagger-ui.min.js diff --git a/MediaBrowser.Api/EnvironmentService.cs b/MediaBrowser.Api/EnvironmentService.cs index d96b69cc4d..f3c5d70c04 100644 --- a/MediaBrowser.Api/EnvironmentService.cs +++ b/MediaBrowser.Api/EnvironmentService.cs @@ -1,8 +1,8 @@ -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using MediaBrowser.Model.Net; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs index 1513d0d05d..c3e28770f0 100644 --- a/MediaBrowser.Api/Images/ImageService.cs +++ b/MediaBrowser.Api/Images/ImageService.cs @@ -1,11 +1,11 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.IO; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Entities; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using ServiceStack.Text.Controller; using System; diff --git a/MediaBrowser.Api/Javascript/JavascriptApiClientService.cs b/MediaBrowser.Api/Javascript/JavascriptApiClientService.cs index 3081d6cd05..165574d747 100644 --- a/MediaBrowser.Api/Javascript/JavascriptApiClientService.cs +++ b/MediaBrowser.Api/Javascript/JavascriptApiClientService.cs @@ -1,6 +1,6 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.Net; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.IO; diff --git a/MediaBrowser.Api/Library/LibraryService.cs b/MediaBrowser.Api/Library/LibraryService.cs index 2abb4e9148..adc267a00d 100644 --- a/MediaBrowser.Api/Library/LibraryService.cs +++ b/MediaBrowser.Api/Library/LibraryService.cs @@ -1,9 +1,9 @@ -using MediaBrowser.Common.Kernel; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Common.Kernel; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; diff --git a/MediaBrowser.Api/Library/LibraryStructureService.cs b/MediaBrowser.Api/Library/LibraryStructureService.cs index 47ea2aa2ab..e495bc8226 100644 --- a/MediaBrowser.Api/Library/LibraryStructureService.cs +++ b/MediaBrowser.Api/Library/LibraryStructureService.cs @@ -1,6 +1,6 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Controller; using MediaBrowser.Model.Entities; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; diff --git a/MediaBrowser.Api/LocalizationService.cs b/MediaBrowser.Api/LocalizationService.cs index 8c4005d479..18c33a90a4 100644 --- a/MediaBrowser.Api/LocalizationService.cs +++ b/MediaBrowser.Api/LocalizationService.cs @@ -1,7 +1,7 @@ -using MediaBrowser.Controller.Localization; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Controller.Localization; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Globalization; -using MediaBrowser.Networking.HttpServer; using MoreLinq; using ServiceStack.ServiceHost; using System.Collections.Generic; diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index 1ebfb357e1..b8dcdfef26 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -111,6 +111,10 @@ + + {c4d2573a-3fd3-441f-81af-174ac4cd4e1d} + MediaBrowser.Common.Implementations + {9142eefa-7570-41e1-bfcc-468bb571af2f} MediaBrowser.Common @@ -123,10 +127,6 @@ {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} MediaBrowser.Model - - {7c11010e-179a-49b7-bfb2-f1656f5e71ad} - MediaBrowser.Networking - diff --git a/MediaBrowser.Api/PackageService.cs b/MediaBrowser.Api/PackageService.cs index 64338e5f09..698d7e47fb 100644 --- a/MediaBrowser.Api/PackageService.cs +++ b/MediaBrowser.Api/PackageService.cs @@ -1,8 +1,8 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.Kernel; using MediaBrowser.Controller; using MediaBrowser.Model.Updates; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs index b2e82d4d6e..ab20e18756 100644 --- a/MediaBrowser.Api/PluginService.cs +++ b/MediaBrowser.Api/PluginService.cs @@ -1,9 +1,9 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Controller; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Plugins; using MediaBrowser.Model.Serialization; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using ServiceStack.Text.Controller; using System; diff --git a/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs b/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs index d1c7f451f2..45d1ae14cd 100644 --- a/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs +++ b/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs @@ -1,8 +1,8 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Tasks; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using ServiceStack.Text.Controller; using System; diff --git a/MediaBrowser.Api/SystemService.cs b/MediaBrowser.Api/SystemService.cs index 55e8ee693d..7edaed1c72 100644 --- a/MediaBrowser.Api/SystemService.cs +++ b/MediaBrowser.Api/SystemService.cs @@ -1,10 +1,10 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Common.Kernel; using MediaBrowser.Controller; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Serialization; using MediaBrowser.Model.System; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.IO; diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index 991c87b5fd..1448886cf6 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -1,9 +1,9 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 2c4fef3522..6218f06b14 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -1,10 +1,10 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index bad55d51c4..fd9b0e78ac 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; @@ -6,7 +7,6 @@ using MediaBrowser.Model.Connectivity; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Serialization; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using ServiceStack.Text.Controller; using System; diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index 47dcbbf4db..5a9f22bbec 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -1,9 +1,9 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Implementations.HttpServer; using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Serialization; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using ServiceStack.Text.Controller; using System; diff --git a/MediaBrowser.Api/WeatherService.cs b/MediaBrowser.Api/WeatherService.cs index 9c66f2bcf8..930daa2703 100644 --- a/MediaBrowser.Api/WeatherService.cs +++ b/MediaBrowser.Api/WeatherService.cs @@ -1,6 +1,6 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.Implementations.HttpServer; +using MediaBrowser.Controller; using MediaBrowser.Model.Weather; -using MediaBrowser.Networking.HttpServer; using ServiceStack.ServiceHost; using System.Linq; using System.Threading; diff --git a/MediaBrowser.Networking/HttpManager/HttpManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs similarity index 96% rename from MediaBrowser.Networking/HttpManager/HttpManager.cs rename to MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 2f44fa74b4..f542165e4c 100644 --- a/MediaBrowser.Networking/HttpManager/HttpManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -15,12 +15,12 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Networking.HttpManager +namespace MediaBrowser.Common.Implementations.HttpClientManager { /// - /// Class HttpManager + /// Class HttpClientManager /// - public class HttpManager : IHttpClient + public class HttpClientManager : IHttpClient { /// /// The _logger @@ -33,11 +33,11 @@ namespace MediaBrowser.Networking.HttpManager private readonly IApplicationPaths _appPaths; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// /// The kernel. /// The logger. - public HttpManager(IApplicationPaths appPaths, ILogger logger) + public HttpClientManager(IApplicationPaths appPaths, ILogger logger) { if (appPaths == null) { @@ -106,7 +106,7 @@ namespace MediaBrowser.Networking.HttpManager await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); - _logger.Info("HttpManager.Get url: {0}", url); + _logger.Info("HttpClientManager.Get url: {0}", url); try { @@ -161,7 +161,7 @@ namespace MediaBrowser.Networking.HttpManager await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); - _logger.Info("HttpManager.Post url: {0}", url); + _logger.Info("HttpClientManager.Post url: {0}", url); try { @@ -222,7 +222,7 @@ namespace MediaBrowser.Networking.HttpManager await resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false); - _logger.Info("HttpManager.GetTempFile url: {0}, temp file: {1}", url, tempFile); + _logger.Info("HttpClientManager.GetTempFile url: {0}, temp file: {1}", url, tempFile); try { @@ -328,7 +328,7 @@ namespace MediaBrowser.Networking.HttpManager var ms = new MemoryStream(); - _logger.Info("HttpManager.GetMemoryStream url: {0}", url); + _logger.Info("HttpClientManager.GetMemoryStream url: {0}", url); try { diff --git a/MediaBrowser.Networking/HttpServer/BaseRestService.cs b/MediaBrowser.Common.Implementations/HttpServer/BaseRestService.cs similarity index 99% rename from MediaBrowser.Networking/HttpServer/BaseRestService.cs rename to MediaBrowser.Common.Implementations/HttpServer/BaseRestService.cs index d499f07814..bcf1dc4a7f 100644 --- a/MediaBrowser.Networking/HttpServer/BaseRestService.cs +++ b/MediaBrowser.Common.Implementations/HttpServer/BaseRestService.cs @@ -7,7 +7,6 @@ using ServiceStack.Common; using ServiceStack.Common.Web; using ServiceStack.ServiceHost; using ServiceStack.ServiceInterface; -using ServiceStack.WebHost.Endpoints; using System; using System.Globalization; using System.IO; @@ -17,7 +16,7 @@ using System.Threading.Tasks; using MimeTypes = MediaBrowser.Common.Net.MimeTypes; using StreamWriter = MediaBrowser.Common.Net.StreamWriter; -namespace MediaBrowser.Networking.HttpServer +namespace MediaBrowser.Common.Implementations.HttpServer { /// /// Class BaseRestService diff --git a/MediaBrowser.Networking/HttpServer/HttpServer.cs b/MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs similarity index 99% rename from MediaBrowser.Networking/HttpServer/HttpServer.cs rename to MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs index 08a6b3561e..57ba6163ba 100644 --- a/MediaBrowser.Networking/HttpServer/HttpServer.cs +++ b/MediaBrowser.Common.Implementations/HttpServer/HttpServer.cs @@ -26,7 +26,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; -namespace MediaBrowser.Networking.HttpServer +namespace MediaBrowser.Common.Implementations.HttpServer { /// /// Class HttpServer diff --git a/MediaBrowser.Networking/HttpServer/NativeWebSocket.cs b/MediaBrowser.Common.Implementations/HttpServer/NativeWebSocket.cs similarity index 98% rename from MediaBrowser.Networking/HttpServer/NativeWebSocket.cs rename to MediaBrowser.Common.Implementations/HttpServer/NativeWebSocket.cs index 84d163be87..97bab96f85 100644 --- a/MediaBrowser.Networking/HttpServer/NativeWebSocket.cs +++ b/MediaBrowser.Common.Implementations/HttpServer/NativeWebSocket.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; using WebSocketMessageType = MediaBrowser.Common.Net.WebSocketMessageType; using WebSocketState = MediaBrowser.Common.Net.WebSocketState; -namespace MediaBrowser.Networking.HttpServer +namespace MediaBrowser.Common.Implementations.HttpServer { /// /// Class NativeWebSocket diff --git a/MediaBrowser.Networking/HttpServer/ServerFactory.cs b/MediaBrowser.Common.Implementations/HttpServer/ServerFactory.cs similarity index 94% rename from MediaBrowser.Networking/HttpServer/ServerFactory.cs rename to MediaBrowser.Common.Implementations/HttpServer/ServerFactory.cs index 716fd450a5..743bd60c4c 100644 --- a/MediaBrowser.Networking/HttpServer/ServerFactory.cs +++ b/MediaBrowser.Common.Implementations/HttpServer/ServerFactory.cs @@ -3,7 +3,7 @@ using MediaBrowser.Common.Net; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; -namespace MediaBrowser.Networking.HttpServer +namespace MediaBrowser.Common.Implementations.HttpServer { /// /// Class ServerFactory diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj index 52be41ddde..44b4e7df76 100644 --- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj +++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj @@ -35,12 +35,43 @@ Always + + ..\packages\Alchemy.2.2.1\lib\net40\Alchemy.dll + ..\packages\NLog.2.0.0.2000\lib\net40\NLog.dll ..\packages\protobuf-net.2.0.0.621\lib\net40\protobuf-net.dll + + ..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.dll + + + ..\packages\ServiceStack.Api.Swagger.3.9.35\lib\net35\ServiceStack.Api.Swagger.dll + + + ..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Common.dll + + + False + ..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Interfaces.dll + + + ..\packages\ServiceStack.Logging.NLog.1.0.6.0\lib\net35\ServiceStack.Logging.NLog.dll + + + ..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.dll + + + ..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.SqlServer.dll + + + ..\packages\ServiceStack.Redis.3.9.37\lib\net35\ServiceStack.Redis.dll + + + ..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.ServiceInterface.dll + ..\packages\ServiceStack.Text.3.9.37\lib\net35\ServiceStack.Text.dll @@ -51,6 +82,20 @@ + + + + + + ..\packages\Rx-Core.2.1.30214.0\lib\Net45\System.Reactive.Core.dll + + + ..\packages\Rx-Interfaces.2.1.30214.0\lib\Net45\System.Reactive.Interfaces.dll + + + ..\packages\Rx-Linq.2.1.30214.0\lib\Net45\System.Reactive.Linq.dll + + @@ -59,9 +104,17 @@ + + + + + + + + @@ -72,8 +125,11 @@ - - + + + + + @@ -87,7 +143,24 @@ - + + + + + + + + + + + + + + + + + + diff --git a/MediaBrowser.Networking/Management/NativeMethods.cs b/MediaBrowser.Common.Implementations/NetworkManagement/NativeMethods.cs similarity index 94% rename from MediaBrowser.Networking/Management/NativeMethods.cs rename to MediaBrowser.Common.Implementations/NetworkManagement/NativeMethods.cs index 9a888fab2b..7c8a094937 100644 --- a/MediaBrowser.Networking/Management/NativeMethods.cs +++ b/MediaBrowser.Common.Implementations/NetworkManagement/NativeMethods.cs @@ -2,7 +2,7 @@ using System.Runtime.InteropServices; using System.Security; -namespace MediaBrowser.Networking.Management +namespace MediaBrowser.Common.Implementations.NetworkManagement { /// /// Class NativeMethods @@ -25,7 +25,7 @@ namespace MediaBrowser.Networking.Management /// The dw resume handle. /// System.Int32. [DllImport("Netapi32", CharSet = CharSet.Auto, SetLastError = true), - SuppressUnmanagedCodeSecurityAttribute] + SuppressUnmanagedCodeSecurity] public static extern int NetServerEnum( string ServerName, // must be null @@ -46,7 +46,7 @@ namespace MediaBrowser.Networking.Management /// The p buf. /// System.Int32. [DllImport("Netapi32", SetLastError = true), - SuppressUnmanagedCodeSecurityAttribute] + SuppressUnmanagedCodeSecurity] public static extern int NetApiBufferFree( IntPtr pBuf); diff --git a/MediaBrowser.Networking/Management/NetworkManager.cs b/MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs similarity index 99% rename from MediaBrowser.Networking/Management/NetworkManager.cs rename to MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs index 208c64a6ed..51b37944c3 100644 --- a/MediaBrowser.Networking/Management/NetworkManager.cs +++ b/MediaBrowser.Common.Implementations/NetworkManagement/NetworkManager.cs @@ -1,15 +1,15 @@ -using MediaBrowser.Common.Net; +using System.Management; +using MediaBrowser.Common.Net; using MediaBrowser.Model.Net; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Management; using System.Net; using System.Net.Sockets; using System.Runtime.InteropServices; -namespace MediaBrowser.Networking.Management +namespace MediaBrowser.Common.Implementations.NetworkManagement { /// /// Class NetUtils diff --git a/MediaBrowser.Networking/Management/NetworkShares.cs b/MediaBrowser.Common.Implementations/NetworkManagement/NetworkShares.cs similarity index 99% rename from MediaBrowser.Networking/Management/NetworkShares.cs rename to MediaBrowser.Common.Implementations/NetworkManagement/NetworkShares.cs index 0239ddead8..e2a8275cff 100644 --- a/MediaBrowser.Networking/Management/NetworkShares.cs +++ b/MediaBrowser.Common.Implementations/NetworkManagement/NetworkShares.cs @@ -3,7 +3,7 @@ using System.IO; using System.Collections; using System.Runtime.InteropServices; -namespace MediaBrowser.Networking.Management +namespace MediaBrowser.Common.Implementations.NetworkManagement { /// /// Type of share diff --git a/MediaBrowser.Common.Implementations/README.txt b/MediaBrowser.Common.Implementations/README.txt new file mode 100644 index 0000000000..e8ce34205d --- /dev/null +++ b/MediaBrowser.Common.Implementations/README.txt @@ -0,0 +1,41 @@ +ServiceStack services should be available under '/api' path. If it's a brand new MVC project +install NuGet Package: ServiceStack.Host.Mvc. The package prepares ServiceStack default services. Make sure +that you added ignore for MVC routes: + + routes.IgnoreRoute("api/{*pathInfo}"); + +If it's MVC4 project, then don't forget to disable WebAPI: + + //WebApiConfig.Register(GlobalConfiguration.Configuration); + +Enable Swagger plugin in AppHost.cs with: + + public override void Configure(Container container) + { + ... + + Plugins.Add(new SwaggerFeature()); + // uncomment CORS feature if it's has to be available from external sites + //Plugins.Add(new CorsFeature()); + ... + + } + +Compile it. Now you can access swagger UI with: + +http://localost:port/swagger-ui/index.html + +or + +http://yoursite/swagger-ui/index.html + + +For more info about ServiceStack please visit: http://www.servicestack.net + +Feel free to ask questions about ServiceStack on: +http://stackoverflow.com/ + +or on the mailing Group at: +http://groups.google.com/group/servicestack + +Enjoy! \ No newline at end of file diff --git a/MediaBrowser.Common.Implementations/Server/RegisterServer.bat b/MediaBrowser.Common.Implementations/ServerManager/RegisterServer.bat similarity index 100% rename from MediaBrowser.Common.Implementations/Server/RegisterServer.bat rename to MediaBrowser.Common.Implementations/ServerManager/RegisterServer.bat diff --git a/MediaBrowser.Common.Implementations/Server/ServerManager.cs b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs similarity index 99% rename from MediaBrowser.Common.Implementations/Server/ServerManager.cs rename to MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs index 04747bad6f..2a3b0155f3 100644 --- a/MediaBrowser.Common.Implementations/Server/ServerManager.cs +++ b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs @@ -14,7 +14,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Common.Implementations.Server +namespace MediaBrowser.Common.Implementations.ServerManager { /// /// Manages the Http Server, Udp Server and WebSocket connections @@ -434,7 +434,7 @@ namespace MediaBrowser.Common.Implementations.Server var tmpFile = Path.Combine(_kernel.ApplicationPaths.TempDirectory, Guid.NewGuid() + ".bat"); // Extract the bat file - using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MediaBrowser.Common.Implementations.Server.bat")) + using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MediaBrowser.Common.Implementations.ServerManager.RegisterServer.bat")) { using (var fileStream = File.Create(tmpFile)) { diff --git a/MediaBrowser.Common.Implementations/Server/WebSocketConnection.cs b/MediaBrowser.Common.Implementations/ServerManager/WebSocketConnection.cs similarity index 99% rename from MediaBrowser.Common.Implementations/Server/WebSocketConnection.cs rename to MediaBrowser.Common.Implementations/ServerManager/WebSocketConnection.cs index b8766523cd..f826b02cc1 100644 --- a/MediaBrowser.Common.Implementations/Server/WebSocketConnection.cs +++ b/MediaBrowser.Common.Implementations/ServerManager/WebSocketConnection.cs @@ -6,7 +6,7 @@ using System.IO; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Common.Implementations.Server +namespace MediaBrowser.Common.Implementations.ServerManager { /// /// Class WebSocketConnection diff --git a/MediaBrowser.Networking/Udp/UdpServer.cs b/MediaBrowser.Common.Implementations/Udp/UdpServer.cs similarity index 97% rename from MediaBrowser.Networking/Udp/UdpServer.cs rename to MediaBrowser.Common.Implementations/Udp/UdpServer.cs index 00eb2a0d13..e0435ab3cb 100644 --- a/MediaBrowser.Networking/Udp/UdpServer.cs +++ b/MediaBrowser.Common.Implementations/Udp/UdpServer.cs @@ -1,6 +1,6 @@ -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Implementations.NetworkManagement; +using MediaBrowser.Common.Net; using MediaBrowser.Model.Logging; -using MediaBrowser.Networking.Management; using System; using System.Net; using System.Net.Sockets; @@ -8,7 +8,7 @@ using System.Reactive.Linq; using System.Text; using System.Threading.Tasks; -namespace MediaBrowser.Networking.Udp +namespace MediaBrowser.Common.Implementations.Udp { /// /// Provides a Udp Server diff --git a/MediaBrowser.Networking/WebSocket/AlchemyServer.cs b/MediaBrowser.Common.Implementations/WebSocket/AlchemyServer.cs similarity index 98% rename from MediaBrowser.Networking/WebSocket/AlchemyServer.cs rename to MediaBrowser.Common.Implementations/WebSocket/AlchemyServer.cs index b3d5d710ec..236bd27b7b 100644 --- a/MediaBrowser.Networking/WebSocket/AlchemyServer.cs +++ b/MediaBrowser.Common.Implementations/WebSocket/AlchemyServer.cs @@ -5,7 +5,7 @@ using MediaBrowser.Model.Logging; using System; using System.Net; -namespace MediaBrowser.Networking.WebSocket +namespace MediaBrowser.Common.Implementations.WebSocket { /// /// Class AlchemyServer diff --git a/MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs b/MediaBrowser.Common.Implementations/WebSocket/AlchemyWebSocket.cs similarity index 98% rename from MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs rename to MediaBrowser.Common.Implementations/WebSocket/AlchemyWebSocket.cs index c8ab58ca40..1ecc38f2c2 100644 --- a/MediaBrowser.Networking/WebSocket/AlchemyWebSocket.cs +++ b/MediaBrowser.Common.Implementations/WebSocket/AlchemyWebSocket.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Networking.WebSocket +namespace MediaBrowser.Common.Implementations.WebSocket { /// /// Class AlchemyWebSocket diff --git a/MediaBrowser.Common.Implementations/packages.config b/MediaBrowser.Common.Implementations/packages.config index 2578e48f3b..ac80a0a03b 100644 --- a/MediaBrowser.Common.Implementations/packages.config +++ b/MediaBrowser.Common.Implementations/packages.config @@ -1,7 +1,17 @@  + + + + + + + + + + \ No newline at end of file diff --git a/MediaBrowser.Common.Implementations/swagger-ui/css/screen.css b/MediaBrowser.Common.Implementations/swagger-ui/css/screen.css new file mode 100644 index 0000000000..07773f9efe --- /dev/null +++ b/MediaBrowser.Common.Implementations/swagger-ui/css/screen.css @@ -0,0 +1,959 @@ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; } + +body { + line-height: 1; } + +ol, ul { + list-style: none; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; } + +q, blockquote { + quotes: none; } + q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; } + +a img { + border: none; } + +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; } + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + text-decoration: none; } + h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover { + text-decoration: underline; } +h1 span.divider, h2 span.divider, h3 span.divider, h4 span.divider, h5 span.divider, h6 span.divider { + color: #aaaaaa; } + +h1 { + color: #547f00; + color: black; + font-size: 1.5em; + line-height: 1.3em; + padding: 10px 0 10px 0; + font-family: "Droid Sans", sans-serif; + font-weight: bold; } + +h2 { + color: #89bf04; + color: black; + font-size: 1.3em; + padding: 10px 0 10px 0; } + h2 a { + color: black; } + h2 span.sub { + font-size: 0.7em; + color: #999999; + font-style: italic; } + h2 span.sub a { + color: #777777; } + +h3 { + color: black; + font-size: 1.1em; + padding: 10px 0 10px 0; } + +div.heading_with_menu { + float: none; + clear: both; + overflow: hidden; + display: block; } + div.heading_with_menu h1, div.heading_with_menu h2, div.heading_with_menu h3, div.heading_with_menu h4, div.heading_with_menu h5, div.heading_with_menu h6 { + display: block; + clear: none; + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width: 60%; } + div.heading_with_menu ul { + display: block; + clear: none; + float: right; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; } + +.body-textarea { + width: 300px; + height: 100px; +} + +p { + line-height: 1.4em; + padding: 0 0 10px 0; + color: #333333; } + +ol { + margin: 0px 0 10px 0; + padding: 0 0 0 18px; + list-style-type: decimal; } + ol li { + padding: 5px 0px; + font-size: 0.9em; + color: #333333; } + +.markdown h3 { + color: #547f00; } +.markdown h4 { + color: #666666; } +.markdown pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid black; + border-color: #e5e0c6; + padding: 10px; + margin: 0 0 10px 0; } + .markdown pre code { + line-height: 1.6em; } +.markdown p code, .markdown li code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #f0f0f0; + color: black; + padding: 1px 3px; } +.markdown ol, .markdown ul { + font-family: "Droid Sans", sans-serif; + margin: 5px 0 10px 0; + padding: 0 0 0 18px; + list-style-type: disc; } + .markdown ol li, .markdown ul li { + padding: 3px 0px; + line-height: 1.4em; + color: #333333; } + +div.gist { + margin: 20px 0 25px 0 !important; } + +p.big, div.big p { + font-size: 1 em; + margin-bottom: 10px; } + +span.weak { + color: #666666; } +span.blank, span.empty { + color: #888888; + font-style: italic; } + +a { + color: #547f00; } + +strong { + font-family: "Droid Sans", sans-serif; + font-weight: bold; + font-weight: bold; } + +.code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; } + +pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid black; + border-color: #e5e0c6; + padding: 10px; + /* white-space: pre-line */ } + pre code { + line-height: 1.6em; } + +.required { + font-weight: bold; } + +table.fullwidth { + width: 100%; } +table thead tr th { + padding: 5px; + font-size: 0.9em; + color: #666666; + border-bottom: 1px solid #999999; } +table tbody tr.offset { + background-color: #f5f5f5; } +table tbody tr td { + padding: 6px; + font-size: 0.9em; + border-bottom: 1px solid #cccccc; + vertical-align: top; + line-height: 1.3em; } +table tbody tr:last-child td { + border-bottom: none; } +table tbody tr.offset { + background-color: #f0f0f0; } + +form.form_box { + background-color: #ebf3f9; + border: 1px solid black; + border-color: #c3d9ec; + padding: 10px; } + form.form_box label { + color: #0f6ab4 !important; } + form.form_box input[type=submit] { + display: block; + padding: 10px; } + form.form_box p { + font-size: 0.9em; + padding: 0 0 15px 0; + color: #7e7b6d; } + form.form_box p a { + color: #646257; } + form.form_box p strong { + color: black; } + form.form_box p.weak { + font-size: 0.8em; } +form.formtastic fieldset.inputs ol li p.inline-hints { + margin-left: 0; + font-style: italic; + font-size: 0.9em; + margin: 0; } +form.formtastic fieldset.inputs ol li label { + display: block; + clear: both; + width: auto; + padding: 0 0 3px 0; + color: #666666; } + form.formtastic fieldset.inputs ol li label abbr { + padding-left: 3px; + color: #888888; } +form.formtastic fieldset.inputs ol li.required label { + color: black; } +form.formtastic fieldset.inputs ol li.string input, form.formtastic fieldset.inputs ol li.url input, form.formtastic fieldset.inputs ol li.numeric input { + display: block; + padding: 4px; + width: auto; + clear: both; } + form.formtastic fieldset.inputs ol li.string input.title, form.formtastic fieldset.inputs ol li.url input.title, form.formtastic fieldset.inputs ol li.numeric input.title { + font-size: 1.3em; } +form.formtastic fieldset.inputs ol li.text textarea { + font-family: "Droid Sans", sans-serif; + height: 250px; + padding: 4px; + display: block; + clear: both; } +form.formtastic fieldset.inputs ol li.select select { + display: block; + clear: both; } +form.formtastic fieldset.inputs ol li.boolean { + float: none; + clear: both; + overflow: hidden; + display: block; } + form.formtastic fieldset.inputs ol li.boolean input { + display: block; + float: left; + clear: none; + margin: 0 5px 0 0; } + form.formtastic fieldset.inputs ol li.boolean label { + display: block; + float: left; + clear: none; + margin: 0; + padding: 0; } +form.formtastic fieldset.buttons { + margin: 0; + padding: 0; } +form.fullwidth ol li.string input, form.fullwidth ol li.url input, form.fullwidth ol li.text textarea, form.fullwidth ol li.numeric input { + width: 500px !important; } + +body { + font-family: "Droid Sans", sans-serif; } + body #content_message { + margin: 10px 15px; + font-style: italic; + color: #999999; } + body #header { + background-color: #89bf04; + padding: 14px; } + body #header a#logo { + font-size: 1.5em; + font-weight: bold; + text-decoration: none; + background: transparent url(http://swagger.wordnik.com/images/logo_small.png) no-repeat left center; + padding: 20px 0 20px 40px; + color: white; } + body #header form#api_selector { + display: block; + clear: none; + float: right; } + body #header form#api_selector .input { + display: block; + clear: none; + float: left; + margin: 0 10px 0 0; } + body #header form#api_selector .input input { + font-size: 0.9em; + padding: 3px; + margin: 0; } + body #header form#api_selector .input input#input_baseUrl { + width: 400px; } + body #header form#api_selector .input input#input_apiKey { + width: 200px; } + body #header form#api_selector .input a#explore { + display: block; + text-decoration: none; + font-weight: bold; + padding: 6px 8px; + font-size: 0.9em; + color: white; + background-color: #547f00; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; } + body #header form#api_selector .input a#explore:hover { + background-color: #547f00; } + body p#colophon { + margin: 0 15px 40px 15px; + padding: 10px 0; + font-size: 0.8em; + border-top: 1px solid #dddddd; + font-family: "Droid Sans", sans-serif; + color: #999999; + font-style: italic; } + body p#colophon a { + text-decoration: none; + color: #547f00; } + body ul#resources { + font-family: "Droid Sans", sans-serif; + font-size: 0.9em; } + body ul#resources li.resource { + border-bottom: 1px solid #dddddd; } + body ul#resources li.resource:last-child { + border-bottom: none; } + body ul#resources li.resource div.heading { + border: 1px solid transparent; + float: none; + clear: both; + overflow: hidden; + display: block; } + body ul#resources li.resource div.heading h2 { + color: #999999; + padding-left: 0px; + display: block; + clear: none; + float: left; + font-family: "Droid Sans", sans-serif; + font-weight: bold; } + body ul#resources li.resource div.heading h2 a { + color: #999999; } + body ul#resources li.resource div.heading h2 a:hover { + color: black; } + body ul#resources li.resource div.heading ul.options { + float: none; + clear: both; + overflow: hidden; + margin: 0; + padding: 0; + display: block; + clear: none; + float: right; + margin: 14px 10px 0 0; } + body ul#resources li.resource div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; } + body ul#resources li.resource div.heading ul.options li:first-child, body ul#resources li.resource div.heading ul.options li.first { + padding-left: 0; } + body ul#resources li.resource div.heading ul.options li:last-child, body ul#resources li.resource div.heading ul.options li.last { + padding-right: 0; + border-right: none; } + body ul#resources li.resource div.heading ul.options li { + color: #666666; + font-size: 0.9em; } + body ul#resources li.resource div.heading ul.options li a { + color: #aaaaaa; + text-decoration: none; } + body ul#resources li.resource div.heading ul.options li a:hover { + text-decoration: underline; + color: black; } + body ul#resources li.resource:hover div.heading h2 a, body ul#resources li.resource.active div.heading h2 a { + color: black; } + body ul#resources li.resource:hover div.heading ul.options li a, body ul#resources li.resource.active div.heading ul.options li a { + color: #555555; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px 0; + padding: 0 0 0 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 0 0; + padding: 0; + background-color: #e7f0f7; + border: 1px solid black; + border-color: #c3d9ec; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span { + margin: 0; + padding: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #0f6ab4; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px 0; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.path { + padding-left: 10px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.path a { + color: black; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.path a:hover { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options { + float: none; + clear: both; + overflow: hidden; + margin: 0; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:first-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.first { + padding-left: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last { + padding-right: 0; + border-right: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { + border-right-color: #c3d9ec; + color: #0f6ab4; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { + color: #0f6ab4; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a:hover, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a:active, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a.active { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { + background-color: #ebf3f9; + border: 1px solid black; + border-color: #c3d9ec; + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { + color: #0f6ab4; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header img { + display: block; + display: block; + clear: none; + float: right; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { + padding: 4px 0 0 10px; + color: #6fa5d2; + display: inline-block; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.response div.block { + background-color: #fcf6db; + border: 1px solid black; + border-color: #e5e0c6; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px 0; + padding: 0 0 0 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 0 0; + padding: 0; + background-color: #e7f6ec; + border: 1px solid black; + border-color: #c3e8d1; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span { + margin: 0; + padding: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #10a54a; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px 0; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.path { + padding-left: 10px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.path a { + color: black; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.path a:hover { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options { + float: none; + clear: both; + overflow: hidden; + margin: 0; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:first-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.first { + padding-left: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last { + padding-right: 0; + border-right: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { + border-right-color: #c3e8d1; + color: #10a54a; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { + color: #10a54a; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a:hover, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a:active, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a.active { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { + background-color: #ebf7f0; + border: 1px solid black; + border-color: #c3e8d1; + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { + color: #10a54a; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header img { + display: block; + display: block; + clear: none; + float: right; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { + padding: 4px 0 0 10px; + color: #6fc992; + display: inline-block; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.response div.block { + background-color: #fcf6db; + border: 1px solid black; + border-color: #e5e0c6; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px 0; + padding: 0 0 0 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 0 0; + padding: 0; + background-color: #f9f2e9; + border: 1px solid black; + border-color: #f0e0ca; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span { + margin: 0; + padding: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #c5862b; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px 0; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.path { + padding-left: 10px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.path a { + color: black; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.path a:hover { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options { + float: none; + clear: both; + overflow: hidden; + margin: 0; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:first-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.first { + padding-left: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last { + padding-right: 0; + border-right: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { + border-right-color: #f0e0ca; + color: #c5862b; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { + color: #c5862b; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a:hover, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a:active, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a.active { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { + background-color: #faf5ee; + border: 1px solid black; + border-color: #f0e0ca; + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { + color: #c5862b; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header img { + display: block; + display: block; + clear: none; + float: right; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { + padding: 4px 0 0 10px; + color: #dcb67f; + display: inline-block; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.response div.block { + background-color: #fcf6db; + border: 1px solid black; + border-color: #e5e0c6; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px 0; + padding: 0 0 0 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 0 0; + padding: 0; + background-color: #f5e8e8; + border: 1px solid black; + border-color: #e8c6c7; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span { + margin: 0; + padding: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #a41e22; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px 0; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.path { + padding-left: 10px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.path a { + color: black; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.path a:hover { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options { + float: none; + clear: both; + overflow: hidden; + margin: 0; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:first-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.first { + padding-left: 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last { + padding-right: 0; + border-right: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { + border-right-color: #e8c6c7; + color: #a41e22; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { + color: #a41e22; + text-decoration: none; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a:hover, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a:active, body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a.active { + text-decoration: underline; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + background-color: #f7eded; + border: 1px solid black; + border-color: #e8c6c7; + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px 0; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { + color: #a41e22; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px 0px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header img { + display: block; + display: block; + clear: none; + float: right; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { + padding: 4px 0 0 10px; + color: #c8787a; + display: inline-block; + font-size: 0.9em; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.response div.block { + background-color: #fcf6db; + border: 1px solid black; + border-color: #e5e0c6; } + body ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; } diff --git a/MediaBrowser.Common.Implementations/swagger-ui/images/pet_store_api.png b/MediaBrowser.Common.Implementations/swagger-ui/images/pet_store_api.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f9cd4aeb35a108c4b2f1dddb59977d56c595d8 GIT binary patch literal 824 zcmV-81IPS{P)n=Rd;8mVwQNY4k4xJQ%YT}s;WA7;r!W@XgqjG_4og} z8w>{OB9REiMa8-B85td+y}bji^~2KA`Md4j-u{zw=H%Da@83%_8qEnl9k1WK;pWX- zb-lg)pQYAreK@>)*5Clqni{IZVYGG+NY67Bp-^bn;L{Nbh44I6CIK+n7p8#U?;fCA zYMFcy%UEjup4fgnli%NyzSe*@419QuU9lJ|T$?f9w?HIQ$RwEJGK7^!y7LhxIgVJp z9c!kB{0aydM1epU1NJ=h(}2X?Y{qn70yEN$dwm~favs=VbQ+T?!AvSl{P~PE zS&zsJbTQttne>kdM4$jBhLMFy@I1)3u-4cAzrY*l!o9eK^w%+jqY!oi(Ri8sMauvK zwnCP#%3hEH#FtNqq{iT(?=_JA_8XC>5Y8Y@!wmxKb|A87ZbpHA`+%v~0pt{5Nko1L zLKR^25YExt1lH7L1{t{|P z@n)yHyZf~3>LZ@#&CNw1rA#OlY^|)UJQKUrlKKO&x%wPhH}6&e0000dvj&>@zN_HP5m0E=+A=efDBI*IG*Gy%%< zz@yc%2XvGm)QQv5k^ZC6!9MwX8BCmQ{3eAX|GTwn#>(PS6PoB=$Pwn*?wz?%Tx2gwJ4apoy`A15D=>?%}hj`fV*p=6XW=YR(sp))`dxTnqHE&{&; zPdeO}SVkf*6_$c45W3Z}u|Z&a8{r!6ZNY62S>5{jAd)Hkjg@h%@c)c#BvZK2lmGw| z`Vh+%ECkF{t=)XpF3Z1bj=Pe9LpHbnQwjeTU#=4hB76#52DU2P2Ouj~^lRWwRd%eN zBw_z%FL0CUlk!`s2!`>QG&H__i_)I9=AuA=jn40z>;@hRsg)>J(58cx;l;h_zE*-R7Wbz6Ff#1Mss*)zTImU4`2@?a7y;v4 zH=lJ_PM5Rkw*AU`Cmq6aa>chASJ&Z3Ebj`y;w$MM!fa6`13VU7Kc|T5Xl#7ecj?mp zREV-nBJ6C)`?&}QDe_(KM>BrlN|iF{7-90j+J>N0^vY=LK;8!^9Y_m*aRPX{!S6ag zgRw(13pJvt`;{^S-vgUk?8pV_Vh4a4P7~}uHT)ENFMqd71QIOl8Q6+24TM_+158z) z54U-*C{M)S&!2Bfu&`?Ti6;WojY;%6+I;uCof+*T2iUMz!7Eg<{}#DJSx)C$5f zP(oSf>_s1t06cJ-U3?<9poS4O{Go>H>hro^ks;r3mm1Ehfq?m(_YE8UiVUgG%W9ZY z!@O^}KR%JW*0e=66rUYj5BP~=x%$^x92-m_ + + Swagger UI + + + + + + + + + + + + + + + + + + + + +
+   +
+ +
+ +
+ + + + diff --git a/MediaBrowser.Common.Implementations/swagger-ui/lib/backbone-min.js b/MediaBrowser.Common.Implementations/swagger-ui/lib/backbone-min.js new file mode 100644 index 0000000000..c1c0d4fff2 --- /dev/null +++ b/MediaBrowser.Common.Implementations/swagger-ui/lib/backbone-min.js @@ -0,0 +1,38 @@ +// Backbone.js 0.9.2 + +// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc. +// Backbone may be freely distributed under the MIT license. +// For all details and documentation: +// http://backbonejs.org +(function(){var l=this,y=l.Backbone,z=Array.prototype.slice,A=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:l.Backbone={};g.VERSION="0.9.2";var f=l._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var i=l.jQuery||l.Zepto||l.ender;g.setDomLibrary=function(a){i=a};g.noConflict=function(){l.Backbone=y;return this};g.emulateHTTP=!1;g.emulateJSON=!1;var p=/\s+/,k=g.Events={on:function(a,b,c){var d,e,f,g,j;if(!b)return this;a=a.split(p);for(d=this._callbacks||(this._callbacks= +{});e=a.shift();)f=(j=d[e])?j.tail:{},f.next=g={},f.context=c,f.callback=b,d[e]={tail:g,next:j?j.next:f};return this},off:function(a,b,c){var d,e,h,g,j,q;if(e=this._callbacks){if(!a&&!b&&!c)return delete this._callbacks,this;for(a=a?a.split(p):f.keys(e);d=a.shift();)if(h=e[d],delete e[d],h&&(b||c))for(g=h.tail;(h=h.next)!==g;)if(j=h.callback,q=h.context,b&&j!==b||c&&q!==c)this.on(d,j,q);return this}},trigger:function(a){var b,c,d,e,f,g;if(!(d=this._callbacks))return this;f=d.all;a=a.split(p);for(g= +z.call(arguments,1);b=a.shift();){if(c=d[b])for(e=c.tail;(c=c.next)!==e;)c.callback.apply(c.context||this,g);if(c=f){e=c.tail;for(b=[b].concat(g);(c=c.next)!==e;)c.callback.apply(c.context||this,b)}}return this}};k.bind=k.on;k.unbind=k.off;var o=g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=n(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.changed={};this._silent= +{};this._pending={};this.set(a,{silent:!0});this.changed={};this._silent={};this._pending={};this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(o.prototype,k,{changed:null,_silent:null,_pending:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.get(a);return this._escapedAttributes[a]=f.escape(null== +b?"":""+b)},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof o&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=c.changes={},h=this.attributes,g=this._escapedAttributes,j=this._previousAttributes||{};for(e in d){a=d[e];if(!f.isEqual(h[e],a)||c.unset&&f.has(h,e))delete g[e],(c.silent?this._silent: +b)[e]=!0;c.unset?delete h[e]:h[e]=a;!f.isEqual(j[e],a)||f.has(h,e)!=f.has(j,e)?(this.changed[e]=a,c.silent||(this._pending[e]=!0)):(delete this.changed[e],delete this._pending[e])}c.silent||this.change(c);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)}; +a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};if(c.wait){if(!this._validate(d,c))return!1;e=f.clone(this.attributes)}a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var h=this,i=c.success;c.success=function(a,b,e){b=h.parse(a,e);if(c.wait){delete c.wait;b=f.extend(d||{},b)}if(!h.set(b,c))return false;i?i(h,a):h.trigger("sync",h,a,c)};c.error=g.wrapError(c.error, +h,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d(),!1;a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=n(this,"urlRoot")||n(this.collection,"url")||t(); +return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){a||(a={});var b=this._changing;this._changing=!0;for(var c in this._silent)this._pending[c]=!0;var d=f.extend({},a.changes,this._silent);this._silent={};for(c in d)this.trigger("change:"+c,this,this.get(c),a);if(b)return this;for(;!f.isEmpty(this._pending);){this._pending= +{};this.trigger("change",this,a);for(c in this.changed)!this._pending[c]&&!this._silent[c]&&delete this.changed[c];this._previousAttributes=f.clone(this.attributes)}this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this.changed):f.has(this.changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this.changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length|| +!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});var r=g.Collection=function(a,b){b||(b={});b.model&&(this.model=b.model);b.comparator&&(this.comparator=b.comparator); +this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(r.prototype,k,{model:o,initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},add:function(a,b){var c,d,e,g,i,j={},k={},l=[];b||(b={});a=f.isArray(a)?a.slice():[a];c=0;for(d=a.length;c=b))this.iframe=i('