diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-01 07:43:34 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-01 07:43:34 -0500 |
| commit | dc8fb33a1f5ad474fed88d58a19c1098c68b815f (patch) | |
| tree | f25dbe0019c0ee3f872d3c7d57ac70bed2076b33 /MediaBrowser.Api/IHasDtoOptions.cs | |
| parent | d7bdb744ca9d4b3955071dfe3c38ed631dbafbfd (diff) | |
updated nuget
Diffstat (limited to 'MediaBrowser.Api/IHasDtoOptions.cs')
| -rw-r--r-- | MediaBrowser.Api/IHasDtoOptions.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/MediaBrowser.Api/IHasDtoOptions.cs b/MediaBrowser.Api/IHasDtoOptions.cs new file mode 100644 index 000000000..f7fb57f01 --- /dev/null +++ b/MediaBrowser.Api/IHasDtoOptions.cs @@ -0,0 +1,49 @@ +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Entities; +using System; +using System.Linq; + +namespace MediaBrowser.Api +{ + public interface IHasDtoOptions : IHasItemFields + { + bool? EnableImages { get; set; } + + int? ImageTypeLimit { get; set; } + + string EnableImageTypes { get; set; } + } + + public static class HasDtoOptionsExtensions + { + public static DtoOptions GetDtoOptions(this IHasDtoOptions request) + { + var options = new DtoOptions(); + + options.Fields = request.GetItemFields().ToList(); + options.EnableImages = request.EnableImages ?? true; + + if (request.ImageTypeLimit.HasValue) + { + options.ImageTypeLimit = request.ImageTypeLimit.Value; + } + + if (string.IsNullOrWhiteSpace(request.EnableImageTypes)) + { + if (options.EnableImages) + { + // Get everything + options.ImageTypes = Enum.GetNames(typeof(ImageType)) + .Select(i => (ImageType)Enum.Parse(typeof(ImageType), i, true)) + .ToList(); + } + } + else + { + options.ImageTypes = (request.EnableImageTypes ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).Select(v => (ImageType)Enum.Parse(typeof(ImageType), v, true)).ToList(); + } + + return options; + } + } +} |
