using System.Collections.Generic; using FluentValidation; using Lidarr.Http; using NzbDrone.Core.Profiles.Qualities; namespace Lidarr.Api.V1.Profiles.Quality { public class ProfileModule : LidarrRestModule { private readonly IProfileService _profileService; public ProfileModule(IProfileService profileService) { _profileService = profileService; SharedValidator.RuleFor(c => c.Name).NotEmpty(); SharedValidator.RuleFor(c => c.Cutoff).ValidCutoff(); SharedValidator.RuleFor(c => c.Items).ValidItems(); GetResourceAll = GetAll; GetResourceById = GetById; UpdateResource = Update; CreateResource = Create; DeleteResource = DeleteProfile; } private int Create(QualityProfileResource resource) { var model = resource.ToModel(); model = _profileService.Add(model); return model.Id; } private void DeleteProfile(int id) { _profileService.Delete(id); } private void Update(QualityProfileResource resource) { var model = resource.ToModel(); _profileService.Update(model); } private QualityProfileResource GetById(int id) { return _profileService.Get(id).ToResource(); } private List GetAll() { return _profileService.All().ToResource(); } } }