2021-05-06 22:39:20 +00:00
|
|
|
#nullable disable
|
|
|
|
|
2020-08-22 19:56:24 +00:00
|
|
|
#pragma warning disable CS1591
|
|
|
|
|
2019-01-13 20:01:16 +00:00
|
|
|
using System;
|
2020-11-12 15:29:42 +00:00
|
|
|
using System.Collections.Generic;
|
2018-12-27 23:27:57 +00:00
|
|
|
using System.Linq;
|
2019-01-13 19:25:32 +00:00
|
|
|
using MediaBrowser.Model.Entities;
|
|
|
|
using MediaBrowser.Model.Querying;
|
2018-12-27 23:27:57 +00:00
|
|
|
|
|
|
|
namespace MediaBrowser.Controller.Dto
|
|
|
|
{
|
|
|
|
public class DtoOptions
|
|
|
|
{
|
2019-01-13 19:25:32 +00:00
|
|
|
private static readonly ItemFields[] DefaultExcludedFields = new[]
|
2018-12-27 23:27:57 +00:00
|
|
|
{
|
|
|
|
ItemFields.SeasonUserData,
|
|
|
|
ItemFields.RefreshState
|
|
|
|
};
|
|
|
|
|
2021-05-11 11:55:46 +00:00
|
|
|
private static readonly ImageType[] AllImageTypes = Enum.GetValues<ImageType>();
|
2020-06-15 21:43:52 +00:00
|
|
|
|
2021-05-11 11:55:46 +00:00
|
|
|
private static readonly ItemFields[] AllItemFields = Enum.GetValues<ItemFields>()
|
|
|
|
.Except(DefaultExcludedFields)
|
|
|
|
.ToArray();
|
2018-12-27 23:27:57 +00:00
|
|
|
|
|
|
|
public DtoOptions()
|
|
|
|
: this(true)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
public DtoOptions(bool allFields)
|
|
|
|
{
|
|
|
|
ImageTypeLimit = int.MaxValue;
|
|
|
|
EnableImages = true;
|
|
|
|
EnableUserData = true;
|
|
|
|
AddCurrentProgram = true;
|
|
|
|
|
2019-02-26 19:47:23 +00:00
|
|
|
Fields = allFields ? AllItemFields : Array.Empty<ItemFields>();
|
2018-12-27 23:27:57 +00:00
|
|
|
ImageTypes = AllImageTypes;
|
|
|
|
}
|
|
|
|
|
2021-05-11 11:55:46 +00:00
|
|
|
public IReadOnlyList<ItemFields> Fields { get; set; }
|
|
|
|
|
|
|
|
public IReadOnlyList<ImageType> ImageTypes { get; set; }
|
|
|
|
|
|
|
|
public int ImageTypeLimit { get; set; }
|
|
|
|
|
|
|
|
public bool EnableImages { get; set; }
|
|
|
|
|
|
|
|
public bool AddProgramRecordingInfo { get; set; }
|
|
|
|
|
|
|
|
public bool EnableUserData { get; set; }
|
|
|
|
|
|
|
|
public bool AddCurrentProgram { get; set; }
|
|
|
|
|
|
|
|
public bool ContainsField(ItemFields field)
|
|
|
|
=> Fields.Contains(field);
|
|
|
|
|
2018-12-27 23:27:57 +00:00
|
|
|
public int GetImageLimit(ImageType type)
|
|
|
|
{
|
|
|
|
if (EnableImages && ImageTypes.Contains(type))
|
|
|
|
{
|
|
|
|
return ImageTypeLimit;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|