Moved server configuration to the model so that the UI can read it

This commit is contained in:
LukePulverenti Luke Pulverenti luke pulverenti 2012-09-02 09:45:02 -04:00
parent 7ad612bb4b
commit e52833059b
14 changed files with 55 additions and 27 deletions

View File

@ -0,0 +1,15 @@
using System.Threading.Tasks;
using MediaBrowser.Common.Net.Handlers;
using MediaBrowser.Controller;
using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Api.HttpHandlers
{
class ServerConfigurationHandler : BaseSerializationHandler<ServerConfiguration>
{
protected override Task<ServerConfiguration> GetObjectToSerialize()
{
return Task.FromResult<ServerConfiguration>(Kernel.Instance.Configuration);
}
}
}

View File

@ -65,6 +65,7 @@
<Compile Include="HttpHandlers\PersonHandler.cs" />
<Compile Include="HttpHandlers\PluginConfigurationHandler.cs" />
<Compile Include="HttpHandlers\PluginsHandler.cs" />
<Compile Include="HttpHandlers\ServerConfigurationHandler.cs" />
<Compile Include="HttpHandlers\StudioHandler.cs" />
<Compile Include="HttpHandlers\StudiosHandler.cs" />
<Compile Include="HttpHandlers\UsersHandler.cs" />

View File

@ -105,6 +105,10 @@ namespace MediaBrowser.Api
{
return new WeatherHandler();
}
else if (localPath.EndsWith("/api/cerverconfiguration", StringComparison.OrdinalIgnoreCase))
{
return new ServerConfigurationHandler();
}
return null;
}

View File

@ -4,6 +4,7 @@ using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.DTO;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Weather;
@ -568,7 +569,20 @@ namespace MediaBrowser.ApiInteraction
/// <summary>
/// Gets weather information for the default location as set in configuration
/// </summary>
public async Task<WeatherInfo> GetWeatherInfo()
public async Task<ServerConfiguration> GetServerConfigurationAsync()
{
string url = ApiUrl + "/ServerConfiguration";
using (Stream stream = await GetSerializedStreamAsync(url).ConfigureAwait(false))
{
return DeserializeFromStream<ServerConfiguration>(stream);
}
}
/// <summary>
/// Gets weather information for the default location as set in configuration
/// </summary>
public async Task<WeatherInfo> GetWeatherInfoAsync()
{
string url = ApiUrl + "/weather";
@ -581,7 +595,7 @@ namespace MediaBrowser.ApiInteraction
/// <summary>
/// Gets weather information for a specific zip code
/// </summary>
public async Task<WeatherInfo> GetWeatherInfo(string zipCode)
public async Task<WeatherInfo> GetWeatherInfoAsync(string zipCode)
{
string url = ApiUrl + "/weather?zipcode=" + zipCode;

View File

@ -2,7 +2,7 @@
using System.IO;
using System.Reflection;
namespace MediaBrowser.Common.Configuration
namespace MediaBrowser.Common.Kernel
{
/// <summary>
/// Provides a base class to hold common application paths used by both the UI and Server.

View File

@ -6,11 +6,11 @@ using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Logging;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.Plugins;
using MediaBrowser.Common.Serialization;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Progress;
namespace MediaBrowser.Common.Kernel
@ -93,17 +93,17 @@ namespace MediaBrowser.Common.Kernel
protected void ReloadComposableParts()
{
DisposeComposableParts();
// Gets all plugin assemblies by first reading all bytes of the .dll and calling Assembly.Load against that
// This will prevent the .dll file from getting locked, and allow us to replace it when needed
IEnumerable<Assembly> pluginAssemblies = Directory.GetFiles(ApplicationPaths.PluginsPath, "*.dll", SearchOption.AllDirectories).Select(f => Assembly.Load(File.ReadAllBytes((f))));
var catalog = new AggregateCatalog(pluginAssemblies.Select(a => new AssemblyCatalog(a)));
// Include composable parts in the Common assembly
// Uncomment this if it's ever needed
//catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
// Include composable parts in the subclass assembly
catalog.Catalogs.Add(new AssemblyCatalog(GetType().Assembly));
@ -171,7 +171,7 @@ namespace MediaBrowser.Common.Kernel
Configuration = XmlSerializer.DeserializeFromFile<TConfigurationType>(ApplicationPaths.SystemConfigurationFilePath);
}
Logger.LoggerInstance.LogSeverity = Configuration.LogSeverity;
Logger.LoggerInstance.LogSeverity = Configuration.EnableDebugLevelLogging ? LogSeverity.Debug : LogSeverity.Info;
}
/// <summary>

View File

@ -74,8 +74,7 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Configuration\BaseApplicationConfiguration.cs" />
<Compile Include="Configuration\BaseApplicationPaths.cs" />
<Compile Include="Kernel\BaseApplicationPaths.cs" />
<Compile Include="Drawing\DrawingUtils.cs" />
<Compile Include="Net\Handlers\StaticFileHandler.cs" />
<Compile Include="Net\MimeTypes.cs" />

View File

@ -1,13 +1,10 @@
using System;
using System.IO;
using System.Threading.Tasks;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
using MediaBrowser.Common.Kernel;
using MediaBrowser.Common.Logging;
using MediaBrowser.Model.Progress;
using System.Reflection;
namespace MediaBrowser.Common.UI
{

View File

@ -9,12 +9,12 @@ using System.Text;
using System.Threading.Tasks;
using MediaBrowser.Common.Kernel;
using MediaBrowser.Common.Logging;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Controller.Weather;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Progress;

View File

@ -58,8 +58,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Configuration\ServerApplicationPaths.cs" />
<Compile Include="Configuration\ServerConfiguration.cs" />
<Compile Include="ServerApplicationPaths.cs" />
<Compile Include="Library\ItemResolveEventArgs.cs" />
<Compile Include="FFMpeg\FFProbe.cs" />
<Compile Include="FFMpeg\FFProbeResult.cs" />

View File

@ -1,7 +1,7 @@
using System.IO;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Kernel;
namespace MediaBrowser.Controller.Configuration
namespace MediaBrowser.Controller
{
/// <summary>
/// Extends BaseApplicationPaths to add paths that are only applicable on the server

View File

@ -1,18 +1,16 @@
using MediaBrowser.Common.Logging;
namespace MediaBrowser.Common.Configuration

namespace MediaBrowser.Model.Configuration
{
/// <summary>
/// Serves as a common base class for the Server and UI application Configurations
/// </summary>
public class BaseApplicationConfiguration
{
public LogSeverity LogSeverity { get; set; }
public bool EnableDebugLevelLogging { get; set; }
public int HttpServerPortNumber { get; set; }
public BaseApplicationConfiguration()
{
LogSeverity = LogSeverity.Info;
HttpServerPortNumber = 8096;
}
}

View File

@ -1,6 +1,5 @@
using MediaBrowser.Common.Configuration;
namespace MediaBrowser.Controller.Configuration

namespace MediaBrowser.Model.Configuration
{
public class ServerConfiguration : BaseApplicationConfiguration
{

View File

@ -32,6 +32,8 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Compile Include="Configuration\BaseApplicationConfiguration.cs" />
<Compile Include="Configuration\ServerConfiguration.cs" />
<Compile Include="DTO\AudioInfo.cs" />
<Compile Include="DTO\DTOBaseItem.cs" />
<Compile Include="DTO\DTOUser.cs" />