diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-24 23:39:53 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-24 23:39:53 -0500 |
| commit | b075e0a5b963435c67b7027f85b51ff181adc2d1 (patch) | |
| tree | eebc13b5bc82de65c7d977295c5106f7d9d2ed76 /MediaBrowser.Api/Images/UploadImageHandler.cs | |
| parent | add43baffef74fcd34cfc6ef02d36777be05b274 (diff) | |
convert upload image url to rest
Diffstat (limited to 'MediaBrowser.Api/Images/UploadImageHandler.cs')
| -rw-r--r-- | MediaBrowser.Api/Images/UploadImageHandler.cs | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/MediaBrowser.Api/Images/UploadImageHandler.cs b/MediaBrowser.Api/Images/UploadImageHandler.cs deleted file mode 100644 index 758e96d85..000000000 --- a/MediaBrowser.Api/Images/UploadImageHandler.cs +++ /dev/null @@ -1,141 +0,0 @@ -using MediaBrowser.Common.IO; -using MediaBrowser.Common.Net.Handlers; -using MediaBrowser.Controller; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using MediaBrowser.Model.Entities; -using System; -using System.IO; -using System.Threading; -using System.Threading.Tasks; - -namespace MediaBrowser.Api.Images -{ - /// <summary> - /// Class UploadImageHandler - /// </summary> - class UploadImageHandler : BaseActionHandler<Kernel> - { - /// <summary> - /// The _source entity - /// </summary> - private BaseItem _sourceEntity; - - /// <summary> - /// Gets the source entity. - /// </summary> - /// <returns>Task{BaseItem}.</returns> - private async Task<BaseItem> GetSourceEntity() - { - if (_sourceEntity == null) - { - if (!string.IsNullOrEmpty(QueryString["personname"])) - { - _sourceEntity = - await Kernel.LibraryManager.GetPerson(QueryString["personname"]).ConfigureAwait(false); - } - - else if (!string.IsNullOrEmpty(QueryString["genre"])) - { - _sourceEntity = - await Kernel.LibraryManager.GetGenre(QueryString["genre"]).ConfigureAwait(false); - } - - else if (!string.IsNullOrEmpty(QueryString["year"])) - { - _sourceEntity = - await - Kernel.LibraryManager.GetYear(int.Parse(QueryString["year"])).ConfigureAwait(false); - } - - else if (!string.IsNullOrEmpty(QueryString["studio"])) - { - _sourceEntity = - await Kernel.LibraryManager.GetStudio(QueryString["studio"]).ConfigureAwait(false); - } - - else if (!string.IsNullOrEmpty(QueryString["userid"])) - { - _sourceEntity = ApiService.GetUserById(QueryString["userid"]); - } - - else - { - _sourceEntity = DtoBuilder.GetItemByClientId(QueryString["id"]); - } - } - - return _sourceEntity; - } - - /// <summary> - /// Gets the type of the image. - /// </summary> - /// <value>The type of the image.</value> - private ImageType ImageType - { - get - { - var imageType = QueryString["type"]; - - return (ImageType)Enum.Parse(typeof(ImageType), imageType, true); - } - } - - /// <summary> - /// Performs the action. - /// </summary> - /// <returns>Task.</returns> - protected override async Task ExecuteAction() - { - var entity = await GetSourceEntity().ConfigureAwait(false); - - using (var reader = new StreamReader(HttpListenerContext.Request.InputStream)) - { - var text = await reader.ReadToEndAsync().ConfigureAwait(false); - - var bytes = Convert.FromBase64String(text); - - string filename; - - switch (ImageType) - { - case ImageType.Art: - filename = "clearart"; - break; - case ImageType.Primary: - filename = "folder"; - break; - default: - filename = ImageType.ToString().ToLower(); - break; - } - - // Use the client filename to determine the original extension - var clientFileName = QueryString["filename"]; - - var oldImagePath = entity.GetImage(ImageType); - - var imagePath = Path.Combine(entity.MetaLocation, filename + Path.GetExtension(clientFileName)); - - // Save to file system - using (var fs = new FileStream(imagePath, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, true)) - { - await fs.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false); - } - - // Set the image - entity.SetImage(ImageType, imagePath); - - // If the new and old paths are different, delete the old one - if (!string.IsNullOrEmpty(oldImagePath) && !oldImagePath.Equals(imagePath, StringComparison.OrdinalIgnoreCase)) - { - File.Delete(oldImagePath); - } - - // Directory watchers should repeat this, but do a quick refresh first - await entity.RefreshMetadata(CancellationToken.None, forceSave: true, allowSlowProviders: false).ConfigureAwait(false); - } - } - } -} |
