diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-02 11:12:27 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-02 11:12:27 -0400 |
| commit | d7be8bd1f59a5f6d0d55b5f6ce0ba6a8422baf7c (patch) | |
| tree | 00a06ca61965460b00f803fc81bfd54aeb34f0d9 | |
| parent | 878ba9447613e0ca85434222c75ece90b1c18946 (diff) | |
fixed missing file
| -rw-r--r-- | MediaBrowser.Api/Images/ImageByNameService.cs | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/MediaBrowser.Api/Images/ImageByNameService.cs b/MediaBrowser.Api/Images/ImageByNameService.cs new file mode 100644 index 000000000..108589517 --- /dev/null +++ b/MediaBrowser.Api/Images/ImageByNameService.cs @@ -0,0 +1,132 @@ +using MediaBrowser.Controller; +using ServiceStack.ServiceHost; +using System.IO; + +namespace MediaBrowser.Api.Images +{ + /// <summary> + /// Class GetGeneralImage + /// </summary> + [Route("/Images/General/{Name}", "GET")] + [Api(Description = "Gets a general image by name")] + public class GetGeneralImage : ImageRequest + { + /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + [ApiMember(Name = "Name", Description = "The name of the image", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string Name { get; set; } + } + + /// <summary> + /// Class GetRatingImage + /// </summary> + [Route("/Images/{Theme}/Ratings/{Name}", "GET")] + [Api(Description = "Gets a rating image by name")] + public class GetRatingImage : ImageRequest + { + /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + [ApiMember(Name = "Name", Description = "The name of the image", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string Name { get; set; } + + /// <summary> + /// Gets or sets the theme. + /// </summary> + /// <value>The theme.</value> + [ApiMember(Name = "Theme", Description = "The theme to get the image from", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string Theme { get; set; } + } + + /// <summary> + /// Class GetMediaInfoImage + /// </summary> + [Route("/Images/{Theme}/MediaInfo/{Name}", "GET")] + [Api(Description = "Gets a media info image by name")] + public class GetMediaInfoImage : ImageRequest + { + /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + [ApiMember(Name = "Name", Description = "The name of the image", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string Name { get; set; } + + /// <summary> + /// Gets or sets the theme. + /// </summary> + /// <value>The theme.</value> + [ApiMember(Name = "Theme", Description = "The theme to get the image from", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] + public string Theme { get; set; } + } + + /// <summary> + /// Class ImageByNameService + /// </summary> + public class ImageByNameService : BaseApiService + { + /// <summary> + /// The _app paths + /// </summary> + private readonly IServerApplicationPaths _appPaths; + + /// <summary> + /// Initializes a new instance of the <see cref="ImageByNameService" /> class. + /// </summary> + /// <param name="appPaths">The app paths.</param> + public ImageByNameService(IServerApplicationPaths appPaths) + { + _appPaths = appPaths; + } + + /// <summary> + /// Gets the specified request. + /// </summary> + /// <param name="request">The request.</param> + /// <returns>System.Object.</returns> + public object Get(GetGeneralImage request) + { + var file = Path.Combine(_appPaths.GeneralPath, request.Name, "folder.jpg"); + + return ToStaticFileResult(File.Exists(file) ? file : Path.ChangeExtension(file, ".png")); + } + + /// <summary> + /// Gets the specified request. + /// </summary> + /// <param name="request">The request.</param> + /// <returns>System.Object.</returns> + public object Get(GetRatingImage request) + { + var file = Path.Combine(_appPaths.GeneralPath, request.Theme); + + return GetImageByName(_appPaths.RatingsPath, request.Name); + } + + /// <summary> + /// Gets the specified request. + /// </summary> + /// <param name="request">The request.</param> + /// <returns>System.Object.</returns> + public object Get(GetMediaInfoImage request) + { + return GetImageByName(_appPaths.MediaInfoImagesPath, request.Name); + } + + /// <summary> + /// Gets the name of the image by. + /// </summary> + /// <param name="directory">The directory.</param> + /// <param name="name">The name.</param> + /// <returns>System.Object.</returns> + private object GetImageByName(string directory, string name) + { + var file = Path.Combine(directory, name, "folder.jpg"); + + return ToStaticFileResult(File.Exists(file) ? file : Path.ChangeExtension(file, ".png")); + } + } +} |
