41 lines
1.3 KiB
C#
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
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
}
|