using System.Collections.Generic; using System.Linq; using Lidarr.Http; using Lidarr.Http.Extensions; using Nancy; using NzbDrone.Core.Qualities; namespace Lidarr.Api.V1.Qualities { public class QualityDefinitionModule : LidarrRestModule { private readonly IQualityDefinitionService _qualityDefinitionService; public QualityDefinitionModule(IQualityDefinitionService qualityDefinitionService) { _qualityDefinitionService = qualityDefinitionService; GetResourceAll = GetAll; GetResourceById = GetById; UpdateResource = Update; Put("/update", d => UpdateMany()); } private void Update(QualityDefinitionResource resource) { var model = resource.ToModel(); _qualityDefinitionService.Update(model); } private QualityDefinitionResource GetById(int id) { return _qualityDefinitionService.GetById(id).ToResource(); } private List GetAll() { return _qualityDefinitionService.All().ToResource(); } private object UpdateMany() { //Read from request var qualityDefinitions = Request.Body.FromJson>() .ToModel() .ToList(); _qualityDefinitionService.UpdateMany(qualityDefinitions); return ResponseWithCode(_qualityDefinitionService.All() .ToResource(), HttpStatusCode.Accepted); } } }