2011-02-03 03:07:36 +02:00
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
2011-02-04 04:58:02 +02:00
|
|
|
using NLog;
|
2011-02-03 03:07:36 +02:00
|
|
|
using NzbDrone.Core.Repository.Quality;
|
2011-06-17 23:31:25 +03:00
|
|
|
using PetaPoco;
|
2011-02-03 03:07:36 +02:00
|
|
|
|
|
|
|
namespace NzbDrone.Core.Providers
|
|
|
|
{
|
2011-04-08 07:03:46 +03:00
|
|
|
public class QualityProvider
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-02-04 04:58:02 +02:00
|
|
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
2011-06-17 23:31:25 +03:00
|
|
|
private readonly IDatabase _database;
|
2011-02-03 03:07:36 +02:00
|
|
|
|
2011-04-08 09:50:30 +03:00
|
|
|
public QualityProvider()
|
|
|
|
{
|
|
|
|
}
|
2011-04-08 07:03:46 +03:00
|
|
|
|
2011-06-17 23:31:25 +03:00
|
|
|
public QualityProvider(IDatabase database)
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-06-17 23:31:25 +03:00
|
|
|
_database = database;
|
2013-01-19 07:46:43 +03:00
|
|
|
SetupDefaultProfiles();
|
2011-02-03 03:07:36 +02:00
|
|
|
}
|
|
|
|
|
2011-04-22 03:30:19 +03:00
|
|
|
public virtual int Add(QualityProfile profile)
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-06-17 23:31:25 +03:00
|
|
|
return Convert.ToInt32(_database.Insert(profile));
|
2011-02-03 03:07:36 +02:00
|
|
|
}
|
|
|
|
|
2011-04-08 07:03:46 +03:00
|
|
|
public virtual void Update(QualityProfile profile)
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-06-17 23:31:25 +03:00
|
|
|
if (!_database.Exists<QualityProfile>("WHERE QualityProfileid = @0", profile.QualityProfileId))
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-02-04 04:58:02 +02:00
|
|
|
Logger.Error("Unable to update non-existing profile");
|
|
|
|
throw new InvalidOperationException("Unable to update non-existing profile");
|
2011-02-03 03:07:36 +02:00
|
|
|
}
|
|
|
|
|
2011-06-17 23:31:25 +03:00
|
|
|
_database.Update(profile);
|
2011-02-03 03:07:36 +02:00
|
|
|
}
|
|
|
|
|
2011-04-08 07:03:46 +03:00
|
|
|
public virtual void Delete(int profileId)
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-06-17 23:31:25 +03:00
|
|
|
_database.Delete<QualityProfile>(profileId);
|
2011-02-03 03:07:36 +02:00
|
|
|
}
|
|
|
|
|
2011-07-08 08:41:08 +03:00
|
|
|
public virtual List<QualityProfile> All()
|
2011-02-03 03:07:36 +02:00
|
|
|
{
|
2011-06-17 23:31:25 +03:00
|
|
|
var profiles = _database.Fetch<QualityProfile>().ToList();
|
2011-02-03 03:07:36 +02:00
|
|
|
|
|
|
|
return profiles;
|
|
|
|
}
|
|
|
|
|
2011-06-18 07:39:02 +03:00
|
|
|
public virtual QualityProfile Get(int profileId)
|
2011-02-05 08:07:25 +02:00
|
|
|
{
|
2011-06-19 02:03:58 +03:00
|
|
|
return _database.Single<QualityProfile>(profileId);
|
2011-02-05 08:07:25 +02:00
|
|
|
}
|
2011-06-13 06:45:22 +03:00
|
|
|
|
2013-01-19 07:46:43 +03:00
|
|
|
private void SetupDefaultProfiles()
|
2011-06-13 06:45:22 +03:00
|
|
|
{
|
2011-07-08 08:41:08 +03:00
|
|
|
if (All().Count != 0)
|
2011-07-08 06:57:31 +03:00
|
|
|
return;
|
2011-06-13 06:45:22 +03:00
|
|
|
|
2011-07-08 06:57:31 +03:00
|
|
|
Logger.Info("Setting up default quality profiles");
|
2011-06-13 06:45:22 +03:00
|
|
|
|
|
|
|
var sd = new QualityProfile { Name = "SD", Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }, Cutoff = QualityTypes.SDTV };
|
|
|
|
|
|
|
|
var hd = new QualityProfile
|
|
|
|
{
|
|
|
|
Name = "HD",
|
2013-01-01 06:45:57 +03:00
|
|
|
Allowed = new List<QualityTypes> { QualityTypes.HDTV720p, QualityTypes.WEBDL720p, QualityTypes.Bluray720p },
|
|
|
|
Cutoff = QualityTypes.HDTV720p
|
2011-06-13 06:45:22 +03:00
|
|
|
};
|
|
|
|
|
2011-07-08 06:57:31 +03:00
|
|
|
Add(sd);
|
|
|
|
Add(hd);
|
2011-06-13 06:45:22 +03:00
|
|
|
|
|
|
|
}
|
2011-02-03 03:07:36 +02:00
|
|
|
}
|
2011-04-10 05:44:01 +03:00
|
|
|
}
|