diff --git a/MediaBrowser.ApiInteraction.Javascript/ApiClient.js b/MediaBrowser.Api/Javascript/ApiClient.js similarity index 100% rename from MediaBrowser.ApiInteraction.Javascript/ApiClient.js rename to MediaBrowser.Api/Javascript/ApiClient.js diff --git a/MediaBrowser.ApiInteraction.Javascript/JavascriptApiClientService.cs b/MediaBrowser.Api/Javascript/JavascriptApiClientService.cs similarity index 90% rename from MediaBrowser.ApiInteraction.Javascript/JavascriptApiClientService.cs rename to MediaBrowser.Api/Javascript/JavascriptApiClientService.cs index c03146e699..8c7499a7cc 100644 --- a/MediaBrowser.ApiInteraction.Javascript/JavascriptApiClientService.cs +++ b/MediaBrowser.Api/Javascript/JavascriptApiClientService.cs @@ -5,13 +5,13 @@ using System; using System.IO; using System.Threading.Tasks; -namespace MediaBrowser.ApiInteraction.Javascript +namespace MediaBrowser.Api.Javascript { /// /// Class GetJavascriptApiClient /// [Route("/JsApiClient.js", "GET")] - [Api(("Gets an api wrapper in Javascript"))] + [ServiceStack.ServiceHost.Api(("Gets an api wrapper in Javascript"))] public class GetJavascriptApiClient { /// @@ -52,7 +52,7 @@ namespace MediaBrowser.ApiInteraction.Javascript /// Stream. private Task GetStream() { - return Task.FromResult(GetType().Assembly.GetManifestResourceStream("MediaBrowser.ApiInteraction.Javascript.ApiClient.js")); + return Task.FromResult(GetType().Assembly.GetManifestResourceStream("MediaBrowser.Api.Javascript.ApiClient.js")); } } } diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs index 4ca073c107..434b04eff9 100644 --- a/MediaBrowser.Api/LibraryService.cs +++ b/MediaBrowser.Api/LibraryService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Kernel; +using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; @@ -97,6 +98,26 @@ namespace MediaBrowser.Api /// public class LibraryService : BaseRestService { + /// + /// The _app host + /// + private readonly IApplicationHost _appHost; + + /// + /// Initializes a new instance of the class. + /// + /// The app host. + /// appHost + public LibraryService(IApplicationHost appHost) + { + if (appHost == null) + { + throw new ArgumentNullException("appHost"); + } + + _appHost = appHost; + } + /// /// Gets the specified request. /// @@ -210,7 +231,7 @@ namespace MediaBrowser.Api { var kernel = (Kernel)Kernel; - var allTypes = kernel.AllTypes.Where(t => !t.IsAbstract && t.IsSubclassOf(typeof(BaseItem))); + var allTypes = _appHost.AllConcreteTypes.Where(t => t.IsSubclassOf(typeof(BaseItem))); if (request.HasInternetProvider) { diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj index 9bdcdb6506..c6c822624a 100644 --- a/MediaBrowser.Api/MediaBrowser.Api.csproj +++ b/MediaBrowser.Api/MediaBrowser.Api.csproj @@ -80,6 +80,7 @@ + @@ -128,6 +129,7 @@ + diff --git a/MediaBrowser.Api/PluginService.cs b/MediaBrowser.Api/PluginService.cs index f982602bf3..1f906f814c 100644 --- a/MediaBrowser.Api/PluginService.cs +++ b/MediaBrowser.Api/PluginService.cs @@ -1,15 +1,15 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; -using MediaBrowser.Common.Serialization; using MediaBrowser.Controller; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Plugins; +using MediaBrowser.Model.Serialization; using ServiceStack.ServiceHost; +using ServiceStack.Text.Controller; using System; using System.Collections.Generic; using System.IO; using System.Linq; -using ServiceStack.Text.Controller; namespace MediaBrowser.Api { @@ -119,6 +119,27 @@ namespace MediaBrowser.Api /// public class PluginService : BaseRestService { + /// + /// The _json serializer + /// + private readonly IJsonSerializer _jsonSerializer; + + /// + /// Initializes a new instance of the class. + /// + /// The json serializer. + /// jsonSerializer + public PluginService(IJsonSerializer jsonSerializer) + : base() + { + if (jsonSerializer == null) + { + throw new ArgumentNullException("jsonSerializer"); + } + + _jsonSerializer = jsonSerializer; + } + /// /// Gets the specified request. /// @@ -198,7 +219,7 @@ namespace MediaBrowser.Api { var kernel = (Kernel)Kernel; - var info = JsonSerializer.DeserializeFromStream(request.RequestStream); + var info = _jsonSerializer.DeserializeFromStream(request.RequestStream); kernel.PluginSecurityManager.SupporterKey = info.SupporterKey; kernel.PluginSecurityManager.LegacyKey = info.LegacyKey; @@ -217,7 +238,7 @@ namespace MediaBrowser.Api var plugin = Kernel.Plugins.First(p => p.Id == id); - var configuration = JsonSerializer.DeserializeFromStream(request.RequestStream, plugin.ConfigurationType) as BasePluginConfiguration; + var configuration = _jsonSerializer.DeserializeFromStream(request.RequestStream, plugin.ConfigurationType) as BasePluginConfiguration; plugin.UpdateConfiguration(configuration); } diff --git a/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs b/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs index 1ca7445427..e79ab90dae 100644 --- a/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs +++ b/MediaBrowser.Api/ScheduledTasks/ScheduledTaskService.cs @@ -1,7 +1,7 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; using MediaBrowser.Common.ScheduledTasks; -using MediaBrowser.Common.Serialization; +using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Tasks; using ServiceStack.ServiceHost; using System; @@ -90,11 +90,32 @@ namespace MediaBrowser.Api.ScheduledTasks /// The task manager. private ITaskManager TaskManager { get; set; } - public ScheduledTaskService(ITaskManager taskManager) + /// + /// The _json serializer + /// + private readonly IJsonSerializer _jsonSerializer; + + /// + /// Initializes a new instance of the class. + /// + /// The task manager. + /// The json serializer. + /// taskManager + public ScheduledTaskService(ITaskManager taskManager, IJsonSerializer jsonSerializer) { + if (taskManager == null) + { + throw new ArgumentNullException("taskManager"); + } + if (jsonSerializer == null) + { + throw new ArgumentNullException("jsonSerializer"); + } + TaskManager = taskManager; + _jsonSerializer = jsonSerializer; } - + /// /// Gets the specified request. /// @@ -113,6 +134,7 @@ namespace MediaBrowser.Api.ScheduledTasks /// /// The request. /// IEnumerable{TaskInfo}. + /// Task not found public object Get(GetScheduledTask request) { var task = TaskManager.ScheduledTasks.FirstOrDefault(i => i.Id == request.Id); @@ -131,6 +153,7 @@ namespace MediaBrowser.Api.ScheduledTasks /// Posts the specified request. /// /// The request. + /// Task not found public void Post(StartScheduledTask request) { var task = TaskManager.ScheduledTasks.FirstOrDefault(i => i.Id == request.Id); @@ -147,6 +170,7 @@ namespace MediaBrowser.Api.ScheduledTasks /// Posts the specified request. /// /// The request. + /// Task not found public void Delete(StopScheduledTask request) { var task = TaskManager.ScheduledTasks.FirstOrDefault(i => i.Id == request.Id); @@ -163,6 +187,7 @@ namespace MediaBrowser.Api.ScheduledTasks /// Posts the specified request. /// /// The request. + /// Task not found public void Post(UpdateScheduledTaskTriggers request) { // We need to parse this manually because we told service stack not to with IRequiresRequestStream @@ -177,7 +202,7 @@ namespace MediaBrowser.Api.ScheduledTasks throw new ResourceNotFoundException("Task not found"); } - var triggerInfos = JsonSerializer.DeserializeFromStream(request.RequestStream); + var triggerInfos = _jsonSerializer.DeserializeFromStream(request.RequestStream); task.Triggers = triggerInfos.Select(ScheduledTaskHelpers.GetTrigger); } diff --git a/MediaBrowser.Api/SystemService.cs b/MediaBrowser.Api/SystemService.cs index 04632aa8e0..7921d024a5 100644 --- a/MediaBrowser.Api/SystemService.cs +++ b/MediaBrowser.Api/SystemService.cs @@ -1,15 +1,19 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; -using MediaBrowser.Common.Serialization; using MediaBrowser.Controller; using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Serialization; using MediaBrowser.Model.System; using ServiceStack.ServiceHost; +using System; using System.IO; using System.Threading.Tasks; namespace MediaBrowser.Api { + /// + /// Class GetSystemInfo + /// [Route("/System/Info", "GET")] public class GetSystemInfo : IReturn { @@ -40,6 +44,10 @@ namespace MediaBrowser.Api [Route("/System/Configuration", "POST")] public class UpdateConfiguration : IRequiresRequestStream { + /// + /// The raw Http Request Input Stream + /// + /// The request stream. public Stream RequestStream { get; set; } } @@ -48,6 +56,27 @@ namespace MediaBrowser.Api /// public class SystemService : BaseRestService { + /// + /// The _json serializer + /// + private readonly IJsonSerializer _jsonSerializer; + + /// + /// Initializes a new instance of the class. + /// + /// The json serializer. + /// jsonSerializer + public SystemService(IJsonSerializer jsonSerializer) + : base() + { + if (jsonSerializer == null) + { + throw new ArgumentNullException("jsonSerializer"); + } + + _jsonSerializer = jsonSerializer; + } + /// /// Gets the specified request. /// @@ -95,8 +124,8 @@ namespace MediaBrowser.Api /// The request. public void Post(UpdateConfiguration request) { - var serverConfig = JsonSerializer.DeserializeFromStream(request.RequestStream); - + var serverConfig = _jsonSerializer.DeserializeFromStream(request.RequestStream); + var kernel = (Kernel)Kernel; kernel.UpdateConfiguration(serverConfig); diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index 576ff88929..4267947ad7 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -1,11 +1,11 @@ using MediaBrowser.Common.Net; -using MediaBrowser.Common.Serialization; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Serialization; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; @@ -28,7 +28,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the id. /// @@ -48,7 +48,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the item id. /// @@ -68,7 +68,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the id. /// @@ -106,7 +106,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the id. /// @@ -125,7 +125,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the id. /// @@ -144,7 +144,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the id. /// @@ -163,7 +163,7 @@ namespace MediaBrowser.Api.UserLibrary /// /// The user id. public Guid UserId { get; set; } - + /// /// Gets or sets the id. /// @@ -215,6 +215,9 @@ namespace MediaBrowser.Api.UserLibrary public string Id { get; set; } } + /// + /// Class GetLocalTrailers + /// [Route("/Users/{UserId}/Items/{Id}/LocalTrailers", "GET")] public class GetLocalTrailers : IReturn> { @@ -231,6 +234,9 @@ namespace MediaBrowser.Api.UserLibrary public string Id { get; set; } } + /// + /// Class GetSpecialFeatures + /// [Route("/Users/{UserId}/Items/{Id}/SpecialFeatures", "GET")] public class GetSpecialFeatures : IReturn> { @@ -253,6 +259,32 @@ namespace MediaBrowser.Api.UserLibrary /// public class UserLibraryService : BaseRestService { + /// + /// The _json serializer + /// + private readonly IJsonSerializer _jsonSerializer; + + /// + /// Initializes a new instance of the class. + /// + /// The json serializer. + /// jsonSerializer + public UserLibraryService(IJsonSerializer jsonSerializer) + : base() + { + if (jsonSerializer == null) + { + throw new ArgumentNullException("jsonSerializer"); + } + + _jsonSerializer = jsonSerializer; + } + + /// + /// Gets the specified request. + /// + /// The request. + /// System.Object. public object Get(GetSpecialFeatures request) { var kernel = (Kernel)Kernel; @@ -260,7 +292,7 @@ namespace MediaBrowser.Api.UserLibrary var user = kernel.GetUserById(request.UserId); var item = DtoBuilder.GetItemByClientId(request.Id, user.Id); - + // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); @@ -272,7 +304,12 @@ namespace MediaBrowser.Api.UserLibrary return ToOptimizedResult(items); } - + + /// + /// Gets the specified request. + /// + /// The request. + /// System.Object. public object Get(GetLocalTrailers request) { var kernel = (Kernel)Kernel; @@ -280,7 +317,7 @@ namespace MediaBrowser.Api.UserLibrary var user = kernel.GetUserById(request.UserId); var item = DtoBuilder.GetItemByClientId(request.Id, user.Id); - + // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); @@ -290,7 +327,7 @@ namespace MediaBrowser.Api.UserLibrary return ToOptimizedResult(items); } - + /// /// Gets the specified request. /// @@ -303,7 +340,7 @@ namespace MediaBrowser.Api.UserLibrary var user = kernel.GetUserById(request.UserId); var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, user.Id); - + // Get everything var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList(); @@ -366,7 +403,7 @@ namespace MediaBrowser.Api.UserLibrary var item = (Folder)DtoBuilder.GetItemByClientId(itemId, user.Id); - var displayPreferences = JsonSerializer.DeserializeFromStream(request.RequestStream); + var displayPreferences = _jsonSerializer.DeserializeFromStream(request.RequestStream); var task = kernel.LibraryManager.SaveDisplayPreferencesForFolder(user, item, displayPreferences); diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index c76479d199..d4490d856a 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -1,16 +1,16 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Net; -using MediaBrowser.Common.Serialization; using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Serialization; using ServiceStack.ServiceHost; +using ServiceStack.Text.Controller; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; -using ServiceStack.Text.Controller; namespace MediaBrowser.Api { @@ -135,6 +135,39 @@ namespace MediaBrowser.Api /// public class UserService : BaseRestService { + /// + /// The _XML serializer + /// + private readonly IXmlSerializer _xmlSerializer; + + /// + /// The _json serializer + /// + private readonly IJsonSerializer _jsonSerializer; + + /// + /// Initializes a new instance of the class. + /// + /// The XML serializer. + /// The json serializer. + /// xmlSerializer + public UserService(IXmlSerializer xmlSerializer, IJsonSerializer jsonSerializer) + : base() + { + if (jsonSerializer == null) + { + throw new ArgumentNullException("jsonSerializer"); + } + + if (xmlSerializer == null) + { + throw new ArgumentNullException("xmlSerializer"); + } + + _jsonSerializer = jsonSerializer; + _xmlSerializer = xmlSerializer; + } + /// /// Gets the specified request. /// @@ -262,10 +295,10 @@ namespace MediaBrowser.Api // https://code.google.com/p/servicestack/source/browse/trunk/Common/ServiceStack.Text/ServiceStack.Text/Controller/PathInfo.cs var pathInfo = PathInfo.Parse(Request.PathInfo); var id = new Guid(pathInfo.GetArgumentValue(1)); - + var kernel = (Kernel)Kernel; - var dtoUser = JsonSerializer.DeserializeFromStream(request.RequestStream); + var dtoUser = _jsonSerializer.DeserializeFromStream(request.RequestStream); var user = kernel.GetUserById(id); @@ -273,7 +306,7 @@ namespace MediaBrowser.Api Task.WaitAll(task); - user.UpdateConfiguration(dtoUser.Configuration); + user.UpdateConfiguration(dtoUser.Configuration, _xmlSerializer); } /// @@ -285,7 +318,7 @@ namespace MediaBrowser.Api { var kernel = (Kernel)Kernel; - var dtoUser = JsonSerializer.DeserializeFromStream(request.RequestStream); + var dtoUser = _jsonSerializer.DeserializeFromStream(request.RequestStream); var newUser = kernel.UserManager.CreateUser(dtoUser.Name).Result; diff --git a/MediaBrowser.ApiInteraction.Javascript/MediaBrowser.ApiInteraction.Javascript.csproj b/MediaBrowser.ApiInteraction.Javascript/MediaBrowser.ApiInteraction.Javascript.csproj deleted file mode 100644 index 68e8c880d4..0000000000 --- a/MediaBrowser.ApiInteraction.Javascript/MediaBrowser.ApiInteraction.Javascript.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - - Debug - AnyCPU - {767B536E-D90C-4D74-A14B-8564B16F3499} - Library - Properties - MediaBrowser.ApiInteraction.Javascript - MediaBrowser.ApiInteraction.Javascript - v4.5 - 512 - ..\ - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - Always - - - - False - ..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.dll - - - False - ..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Common.dll - - - False - ..\packages\ServiceStack.Common.3.9.37\lib\net35\ServiceStack.Interfaces.dll - - - False - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.dll - - - False - ..\packages\ServiceStack.OrmLite.SqlServer.3.9.37\lib\ServiceStack.OrmLite.SqlServer.dll - - - False - ..\packages\ServiceStack.Redis.3.9.37\lib\net35\ServiceStack.Redis.dll - - - False - ..\packages\ServiceStack.3.9.37\lib\net35\ServiceStack.ServiceInterface.dll - - - False - ..\packages\ServiceStack.Text.3.9.37\lib\net35\ServiceStack.Text.dll - - - - - - - - Properties\SharedVersion.cs - - - - - - - {9142eefa-7570-41e1-bfcc-468bb571af2f} - MediaBrowser.Common - - - - - - - - - - - xcopy "$(TargetPath)" "$(SolutionDir)\MediaBrowser.ServerApplication\CorePlugins\" /y - - - - \ No newline at end of file diff --git a/MediaBrowser.ApiInteraction.Javascript/Properties/AssemblyInfo.cs b/MediaBrowser.ApiInteraction.Javascript/Properties/AssemblyInfo.cs deleted file mode 100644 index 1a0333e49b..0000000000 --- a/MediaBrowser.ApiInteraction.Javascript/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MediaBrowser.ApiInteraction.Javascript")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MediaBrowser.ApiInteraction.Javascript")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("97f9d4da-d7de-47d9-ae68-06d78679d327")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// \ No newline at end of file diff --git a/MediaBrowser.ApiInteraction.Javascript/packages.config b/MediaBrowser.ApiInteraction.Javascript/packages.config deleted file mode 100644 index ea25110aae..0000000000 --- a/MediaBrowser.ApiInteraction.Javascript/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/MediaBrowser.Common/Kernel/BaseApplicationPaths.cs b/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs similarity index 99% rename from MediaBrowser.Common/Kernel/BaseApplicationPaths.cs rename to MediaBrowser.Common.Implementations/BaseApplicationPaths.cs index 936c484c8a..93478b22c1 100644 --- a/MediaBrowser.Common/Kernel/BaseApplicationPaths.cs +++ b/MediaBrowser.Common.Implementations/BaseApplicationPaths.cs @@ -3,7 +3,7 @@ using System.Configuration; using System.IO; using System.Reflection; -namespace MediaBrowser.Common.Kernel +namespace MediaBrowser.Common.Implementations { /// /// Provides a base class to hold common application paths used by both the Ui and Server. diff --git a/MediaBrowser.Server.WorldWeatherOnline/MediaBrowser.Server.WorldWeatherOnline.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj similarity index 61% rename from MediaBrowser.Server.WorldWeatherOnline/MediaBrowser.Server.WorldWeatherOnline.csproj rename to MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj index 1e97a482ed..d271db0600 100644 --- a/MediaBrowser.Server.WorldWeatherOnline/MediaBrowser.Server.WorldWeatherOnline.csproj +++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj @@ -4,13 +4,15 @@ Debug AnyCPU - {973CA45C-8362-490B-8327-C68098FD4891} + {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D} Library Properties - MediaBrowser.Server.WorldWeatherOnline - MediaBrowser.Server.WorldWeatherOnline + MediaBrowser.Common.Implementations + MediaBrowser.Common.Implementations v4.5 512 + ..\ + true true @@ -29,39 +31,52 @@ prompt 4 - - Always - + + ..\packages\protobuf-net.2.0.0.621\lib\net40\protobuf-net.dll + + + ..\packages\ServiceStack.Text.3.9.37\lib\net35\ServiceStack.Text.dll + + + + + + Properties\SharedVersion.cs + - + + + + + + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} MediaBrowser.Common - - {17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2} - MediaBrowser.Controller - {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} MediaBrowser.Model + + + - - xcopy "$(TargetPath)" "$(SolutionDir)\MediaBrowser.ServerApplication\CorePlugins\" /y - +