diff options
| -rw-r--r-- | MediaBrowser.ApiInteraction/ApiClient.cs | 18 | ||||
| -rw-r--r-- | MediaBrowser.Common/Kernel/BaseKernel.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Common/Net/Handlers/BaseSerializationHandler.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Weather/WeatherClient.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Model/Configuration/ServerConfiguration.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Model/MediaBrowser.Model.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Weather/WeatherUnits.cs | 9 |
7 files changed, 47 insertions, 13 deletions
diff --git a/MediaBrowser.ApiInteraction/ApiClient.cs b/MediaBrowser.ApiInteraction/ApiClient.cs index bc06aa9a2..3de40f6a8 100644 --- a/MediaBrowser.ApiInteraction/ApiClient.cs +++ b/MediaBrowser.ApiInteraction/ApiClient.cs @@ -573,9 +573,9 @@ namespace MediaBrowser.ApiInteraction {
string url = ApiUrl + "/ServerConfiguration";
- using (Stream stream = await GetSerializedStreamAsync(url).ConfigureAwait(false))
+ using (Stream stream = await GetSerializedStreamAsync(url, ApiInteraction.SerializationFormat.Json).ConfigureAwait(false))
{
- return DeserializeFromStream<ServerConfiguration>(stream);
+ return DeserializeFromStream<ServerConfiguration>(stream, ApiInteraction.SerializationFormat.Json);
}
}
@@ -623,18 +623,26 @@ namespace MediaBrowser.ApiInteraction /// </summary>
private Task<Stream> GetSerializedStreamAsync(string url)
{
+ return GetSerializedStreamAsync(url, SerializationFormat);
+ }
+
+ /// <summary>
+ /// This is a helper around getting a stream from the server that contains serialized data
+ /// </summary>
+ private Task<Stream> GetSerializedStreamAsync(string url, SerializationFormat serializationFormat)
+ {
if (url.IndexOf('?') == -1)
{
- url += "?dataformat=" + SerializationFormat.ToString().ToLower();
+ url += "?dataformat=" + serializationFormat.ToString().ToLower();
}
else
{
- url += "&dataformat=" + SerializationFormat.ToString().ToLower();
+ url += "&dataformat=" + serializationFormat.ToString().ToLower();
}
return GetStreamAsync(url);
}
-
+
private T DeserializeFromStream<T>(Stream stream)
{
return DeserializeFromStream<T>(stream, SerializationFormat);
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 44569cbad..cdde17b24 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -41,6 +41,14 @@ namespace MediaBrowser.Common.Kernel /// </summary>
public HttpServer HttpServer { get; private set; }
+ protected virtual string HttpServerUrlPrefix
+ {
+ get
+ {
+ return "http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/";
+ }
+ }
+
/// <summary>
/// Gets the kernel context. The UI kernel will have to override this.
/// </summary>
@@ -181,7 +189,7 @@ namespace MediaBrowser.Common.Kernel {
DisposeHttpServer();
- HttpServer = new HttpServer("http://+:" + Configuration.HttpServerPortNumber + "/mediabrowser/");
+ HttpServer = new HttpServer(HttpServerUrlPrefix);
}
/// <summary>
diff --git a/MediaBrowser.Common/Net/Handlers/BaseSerializationHandler.cs b/MediaBrowser.Common/Net/Handlers/BaseSerializationHandler.cs index a0696d4a6..dd3020e03 100644 --- a/MediaBrowser.Common/Net/Handlers/BaseSerializationHandler.cs +++ b/MediaBrowser.Common/Net/Handlers/BaseSerializationHandler.cs @@ -62,7 +62,7 @@ namespace MediaBrowser.Common.Net.Handlers protected async override Task WriteResponseToOutputStream(Stream stream)
{
- await EnsureObjectToSerialize();
+ await EnsureObjectToSerialize().ConfigureAwait(false);
switch (SerializationFormat)
{
diff --git a/MediaBrowser.Controller/Weather/WeatherClient.cs b/MediaBrowser.Controller/Weather/WeatherClient.cs index c49c50477..e2aada34f 100644 --- a/MediaBrowser.Controller/Weather/WeatherClient.cs +++ b/MediaBrowser.Controller/Weather/WeatherClient.cs @@ -53,12 +53,18 @@ namespace MediaBrowser.Controller.Weather {
WeatherInfo info = new WeatherInfo();
- if (data.current_condition.Any())
+ if (data.current_condition != null)
{
- info.CurrentWeather = data.current_condition.First().ToWeatherStatus();
+ if (data.current_condition.Any())
+ {
+ info.CurrentWeather = data.current_condition.First().ToWeatherStatus();
+ }
}
- info.Forecasts = data.weather.Select(w => w.ToWeatherForecast()).ToArray();
+ if (data.weather != null)
+ {
+ info.Forecasts = data.weather.Select(w => w.ToWeatherForecast()).ToArray();
+ }
return info;
}
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index 480cf3adb..c229ca556 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -1,17 +1,19 @@ -
+using MediaBrowser.Model.Weather;
+
namespace MediaBrowser.Model.Configuration
{
public class ServerConfiguration : BaseApplicationConfiguration
{
public bool EnableInternetProviders { get; set; }
- public string WeatherZipCode { get; set; }
public bool EnableUserProfiles { get; set; }
+ public string WeatherZipCode { get; set; }
+ public WeatherUnits WeatherUnit { get; set; }
+
public ServerConfiguration()
: base()
{
EnableUserProfiles = true;
- WeatherZipCode = "02116";
}
}
}
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index b91e7ea17..668fd8f5b 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -61,6 +61,7 @@ <Compile Include="Weather\WeatherForecast.cs" />
<Compile Include="Weather\WeatherInfo.cs" />
<Compile Include="Weather\WeatherStatus.cs" />
+ <Compile Include="Weather\WeatherUnits.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="protobuf-net">
diff --git a/MediaBrowser.Model/Weather/WeatherUnits.cs b/MediaBrowser.Model/Weather/WeatherUnits.cs new file mode 100644 index 000000000..3bea67b9a --- /dev/null +++ b/MediaBrowser.Model/Weather/WeatherUnits.cs @@ -0,0 +1,9 @@ +
+namespace MediaBrowser.Model.Weather
+{
+ public enum WeatherUnits
+ {
+ Fahrenheit,
+ Celsius
+ }
+}
|
