@ -1,6 +1,7 @@
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Net ;
using FluentValidation.Results ;
using Newtonsoft.Json.Linq ;
using NLog ;
@ -59,32 +60,27 @@ namespace NzbDrone.Core.Notifications.Xbmc
private XbmcVersion GetJsonVersion ( XbmcSettings settings )
{
try
return _xbmcVersionCache . Get ( settings . Address , ( ) = >
{
return _xbmcVersionCache . Get ( settings . Address , ( ) = >
{
var response = _proxy . GetJsonVersion ( settings ) ;
_logger . Debug ( "Getting version from response: " + response ) ;
var result = Json . Deserialize < XbmcJsonResult < JObject > > ( response ) ;
var response = _proxy . GetJsonVersion ( settings ) ;
var versionObject = result . Result . Property ( "version" ) ;
_logger . Debug ( "Getting version from response: " + response ) ;
var result = Json . Deserialize < XbmcJsonResult < JObject > > ( response ) ;
if ( versionObject . Value . Type = = JTokenType . Integer ) return new XbmcVersion ( ( int ) versionObject . Value ) ;
var versionObject = result . Result . Property ( "version" ) ;
if ( versionObject . Value . Type = = JTokenType . Object ) return Json . Deserialize < XbmcVersion > ( versionObject . Value . ToString ( ) ) ;
throw new InvalidCastException ( "Unknown Version structure!: " + versionObject ) ;
} , TimeSpan . FromHours ( 12 ) ) ;
}
if ( versionObject . Value . Type = = JTokenType . Integer )
{
return new XbmcVersion ( ( int ) versionObject . Value ) ;
}
catch ( Exception ex )
{
_logger . DebugException ( ex . Message , ex ) ;
}
if ( versionObject . Value . Type = = JTokenType . Object )
{
return Json . Deserialize < XbmcVersion > ( versionObject . Value . ToString ( ) ) ;
}
return new XbmcVersion ( ) ;
throw new InvalidCastException ( "Unknown Version structure!: " + versionObject ) ;
} , TimeSpan . FromHours ( 12 ) ) ;
}
private IApiProvider GetApiProvider ( XbmcSettings settings )