using System; using System.Collections.Generic; using System.Linq; using System.Text; using NLog; using NzbDrone.Core.Lifecycle; namespace NzbDrone.Core.Qualities { public interface IQualitySizeService { void Update(QualitySize qualitySize); void UpdateAll(List qualitySizes); List All(); QualitySize Get(int qualityId); } public class QualitySizeService : IQualitySizeService, IInitializable { private readonly IQualitySizeRepository _qualitySizeRepository; private readonly Logger _logger; public QualitySizeService(IQualitySizeRepository qualitySizeRepository, Logger logger) { _qualitySizeRepository = qualitySizeRepository; _logger = logger; } public virtual void Update(QualitySize qualitySize) { _qualitySizeRepository.Update(qualitySize); } public virtual void UpdateAll(List qualitySizes) { _qualitySizeRepository.UpdateMany(qualitySizes); } public virtual List All() { return _qualitySizeRepository.All().ToList(); } public virtual QualitySize Get(int qualityId) { return _qualitySizeRepository.GetByQualityId(qualityId); } public void Init() { var inDb = All(); _logger.Debug("Setting up default quality sizes"); foreach (var quality in Quality.All()) { //Skip UNKNOWN if (quality.Id == 0) continue; var db = inDb.SingleOrDefault(s => s.QualityId == quality.Id); if(db == null) _qualitySizeRepository.Insert(new QualitySize { QualityId = quality.Id, Name = quality.Name, MinSize = 0, MaxSize = 100 }); } } } }