diff options
| -rw-r--r-- | MediaBrowser.Api/ApiService.cs | 27 | ||||
| -rw-r--r-- | MediaBrowser.ApiInteraction/BaseClient.cs | 18 | ||||
| -rw-r--r-- | MediaBrowser.Common/Kernel/BaseKernel.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Common/MediaBrowser.Common.csproj | 5 | ||||
| -rw-r--r-- | MediaBrowser.Common/packages.config | 2 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/ApiBaseItem.cs | 7 |
6 files changed, 55 insertions, 8 deletions
diff --git a/MediaBrowser.Api/ApiService.cs b/MediaBrowser.Api/ApiService.cs index 34f7e69e7..bb2427574 100644 --- a/MediaBrowser.Api/ApiService.cs +++ b/MediaBrowser.Api/ApiService.cs @@ -31,9 +31,14 @@ namespace MediaBrowser.Api UserItemData = Kernel.Instance.GetUserItemData(userId, item.Id),
Type = item.GetType().Name,
IsFolder = (item is Folder),
- ParentId = item.Parent == null ? Guid.Empty : item.Parent.Id
+ ParentLogoItemId = GetParentLogoItemId(item)
};
+ if (item.Parent != null)
+ {
+ wrapper.ParentId = item.Parent.Id;
+ }
+
if (includeChildren)
{
var folder = item as Folder;
@@ -46,5 +51,25 @@ namespace MediaBrowser.Api return wrapper;
}
+
+ private static Guid? GetParentLogoItemId(BaseItem item)
+ {
+ if (string.IsNullOrEmpty(item.LogoImagePath))
+ {
+ var parent = item.Parent;
+
+ while (parent != null)
+ {
+ if (!string.IsNullOrEmpty(parent.LogoImagePath))
+ {
+ return parent.Id;
+ }
+
+ parent = parent.Parent;
+ }
+ }
+
+ return null;
+ }
}
}
diff --git a/MediaBrowser.ApiInteraction/BaseClient.cs b/MediaBrowser.ApiInteraction/BaseClient.cs index bd25b1653..887c1779f 100644 --- a/MediaBrowser.ApiInteraction/BaseClient.cs +++ b/MediaBrowser.ApiInteraction/BaseClient.cs @@ -8,7 +8,23 @@ namespace MediaBrowser.ApiInteraction /// </summary>
public abstract class BaseClient : IDisposable
{
- public string ApiUrl { get; set; }
+ /// <summary>
+ /// Gets or sets the server host name (myserver or 192.168.x.x)
+ /// </summary>
+ public string ServerHostName { get; set; }
+
+ /// <summary>
+ /// Gets or sets the port number used by the API
+ /// </summary>
+ public int ApiPort { get; set; }
+
+ protected string ApiUrl
+ {
+ get
+ {
+ return string.Format("http://{0}:{1}/mediabrowser/api", ServerHostName, ApiPort);
+ }
+ }
protected HttpClient HttpClient { get; private set; }
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index 514c05097..2420a5091 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -141,7 +141,7 @@ namespace MediaBrowser.Common.Kernel /// <summary>
/// Reloads application configuration from the config file
/// </summary>
- private void ReloadConfiguration()
+ protected virtual void ReloadConfiguration()
{
//Configuration information for anything other than server-specific configuration will have to come via the API... -ebr
@@ -199,7 +199,7 @@ namespace MediaBrowser.Common.Kernel /// <summary>
/// Disposes all resources currently in use.
/// </summary>
- public void Dispose()
+ public virtual void Dispose()
{
DisposeHttpServer();
DisposeLogger();
diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj index 21430001c..326bbe424 100644 --- a/MediaBrowser.Common/MediaBrowser.Common.csproj +++ b/MediaBrowser.Common/MediaBrowser.Common.csproj @@ -30,8 +30,9 @@ <WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
- <Reference Include="ServiceStack.Text">
- <HintPath>..\packages\ServiceStack.Text.3.8.5\lib\net35\ServiceStack.Text.dll</HintPath>
+ <Reference Include="ServiceStack.Text, Version=3.9.3.0, Culture=neutral, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\ServiceStack.Text.3.9.3\lib\net35\ServiceStack.Text.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
diff --git a/MediaBrowser.Common/packages.config b/MediaBrowser.Common/packages.config index 15a978d36..a2d64772c 100644 --- a/MediaBrowser.Common/packages.config +++ b/MediaBrowser.Common/packages.config @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Rx-Main" version="1.0.11226" targetFramework="net45" />
- <package id="ServiceStack.Text" version="3.8.5" targetFramework="net45" />
+ <package id="ServiceStack.Text" version="3.9.3" targetFramework="net45" />
</packages>
\ No newline at end of file diff --git a/MediaBrowser.Model/Entities/ApiBaseItem.cs b/MediaBrowser.Model/Entities/ApiBaseItem.cs index 341b1c77f..0ec9ed7c6 100644 --- a/MediaBrowser.Model/Entities/ApiBaseItem.cs +++ b/MediaBrowser.Model/Entities/ApiBaseItem.cs @@ -26,7 +26,7 @@ namespace MediaBrowser.Model.Entities public bool IsFolder { get; set; }
- public Guid ParentId { get; set; }
+ public Guid? ParentId { get; set; }
public string Type { get; set; }
@@ -39,5 +39,10 @@ namespace MediaBrowser.Model.Entities {
return Type.Equals(type, StringComparison.OrdinalIgnoreCase);
}
+
+ /// <summary>
+ /// If the item does not have a logo, this will hold the Id of the Parent that has one.
+ /// </summary>
+ public Guid? ParentLogoItemId { get; set; }
}
}
|
