Radarr/NzbDrone.Api/Qualities/QualityProfileSchemaModule.cs

41 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using NzbDrone.Core.Datastore;
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
};
}
}
}