You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
using System.Collections.Generic;
|
|
using NzbDrone.Core.Qualities;
|
|
using NzbDrone.Api.Mapping;
|
|
using System.Linq;
|
|
|
|
namespace NzbDrone.Api.Qualities
|
|
{
|
|
public class QualityProfileSchemaModule : NzbDroneRestModule<QualityProfileResource>
|
|
{
|
|
public QualityProfileSchemaModule()
|
|
: base("/qualityprofiles/schema")
|
|
{
|
|
GetResourceAll = GetAll;
|
|
}
|
|
|
|
private List<QualityProfileResource> GetAll()
|
|
{
|
|
var profile = new QualityProfile();
|
|
profile.Cutoff = Quality.Unknown;
|
|
profile.Allowed = new List<Quality>();
|
|
|
|
return new List<QualityProfileResource>{ QualityToResource(profile)};
|
|
}
|
|
|
|
private static QualityProfileResource QualityToResource(QualityProfile profile)
|
|
{
|
|
return new QualityProfileResource
|
|
{
|
|
Available = Quality.All()
|
|
.Where(c => !profile.Allowed.Any(q => c.Id == q.Id))
|
|
.InjectTo<List<QualityResource>>(),
|
|
|
|
Allowed = profile.Allowed.InjectTo<List<QualityResource>>(),
|
|
Name = profile.Name,
|
|
Id = profile.Id
|
|
};
|
|
}
|
|
}
|
|
} |