mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-05 02:22:31 +01:00
First steps for SQLite
This commit is contained in:
parent
29ec800996
commit
ebbf5ea21f
@ -15,6 +15,7 @@ public static class PathExtentions
|
|||||||
public const string NZBDRONE_EXE = "NzbDrone.exe";
|
public const string NZBDRONE_EXE = "NzbDrone.exe";
|
||||||
|
|
||||||
public const string OBJ_DB_FOLDER = "objDb";
|
public const string OBJ_DB_FOLDER = "objDb";
|
||||||
|
public const string NZBDRONE_DB = "nzbdrone.db";
|
||||||
|
|
||||||
private const string BACKUP_ZIP_FILE = "NzbDrone_Backup.zip";
|
private const string BACKUP_ZIP_FILE = "NzbDrone_Backup.zip";
|
||||||
|
|
||||||
@ -40,10 +41,6 @@ public static string NormalizePath(this string path)
|
|||||||
return info.FullName.Trim('/', '\\', ' ');
|
return info.FullName.Trim('/', '\\', ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static string GetWebRoot(this EnvironmentProvider environmentProvider)
|
public static string GetWebRoot(this EnvironmentProvider environmentProvider)
|
||||||
{
|
{
|
||||||
return Path.Combine(environmentProvider.ApplicationPath, WEB_FOLDER);
|
return Path.Combine(environmentProvider.ApplicationPath, WEB_FOLDER);
|
||||||
@ -74,7 +71,6 @@ public static string GetObjectDbFolder(this EnvironmentProvider environmentProvi
|
|||||||
return Path.Combine(environmentProvider.GetAppDataPath(), OBJ_DB_FOLDER);
|
return Path.Combine(environmentProvider.GetAppDataPath(), OBJ_DB_FOLDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static string GetMediaCoverPath(this EnvironmentProvider environmentProvider)
|
public static string GetMediaCoverPath(this EnvironmentProvider environmentProvider)
|
||||||
{
|
{
|
||||||
return Path.Combine(environmentProvider.GetWebRoot(), "MediaCover");
|
return Path.Combine(environmentProvider.GetWebRoot(), "MediaCover");
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
@ -57,7 +58,12 @@ private static void InitDatabase(this ContainerBuilder container)
|
|||||||
var appDataPath = new EnvironmentProvider().GetAppDataPath();
|
var appDataPath = new EnvironmentProvider().GetAppDataPath();
|
||||||
if (!Directory.Exists(appDataPath)) Directory.CreateDirectory(appDataPath);
|
if (!Directory.Exists(appDataPath)) Directory.CreateDirectory(appDataPath);
|
||||||
|
|
||||||
|
container.Register(c =>
|
||||||
|
{
|
||||||
|
return c.Resolve<IDbFactory>().Create();
|
||||||
|
}).As<IDbConnection>().SingleInstance();
|
||||||
|
|
||||||
|
container.RegisterGeneric(typeof(BasicDb<>)).As(typeof(IBasicDb<>));
|
||||||
|
|
||||||
container.Register(c =>
|
container.Register(c =>
|
||||||
{
|
{
|
||||||
@ -65,6 +71,7 @@ private static void InitDatabase(this ContainerBuilder container)
|
|||||||
}).As<IObjectDatabase>().SingleInstance();
|
}).As<IObjectDatabase>().SingleInstance();
|
||||||
|
|
||||||
container.RegisterGeneric(typeof(BasicRepository<>)).As(typeof(IBasicRepository<>));
|
container.RegisterGeneric(typeof(BasicRepository<>)).As(typeof(IBasicRepository<>));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
126
NzbDrone.Core/Datastore/BasicDb.cs
Normal file
126
NzbDrone.Core/Datastore/BasicDb.cs
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Linq;
|
||||||
|
using ServiceStack.OrmLite;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Datastore
|
||||||
|
{
|
||||||
|
public interface IBasicDb<TModel> where TModel : ModelBase, new()
|
||||||
|
{
|
||||||
|
IEnumerable<TModel> All();
|
||||||
|
int Count();
|
||||||
|
TModel Get(int id);
|
||||||
|
//TModel Single();
|
||||||
|
//TModel SingleOrDefault();
|
||||||
|
TModel Insert(TModel model);
|
||||||
|
TModel Update(TModel model);
|
||||||
|
TModel Upsert(TModel model);
|
||||||
|
void Delete(int id);
|
||||||
|
void Delete(TModel model);
|
||||||
|
void InsertMany(IList<TModel> models);
|
||||||
|
void UpdateMany(IList<TModel> models);
|
||||||
|
void DeleteMany(List<TModel> models);
|
||||||
|
void Purge();
|
||||||
|
bool HasItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BasicDb<TModel> : IBasicDb<TModel> where TModel : ModelBase, new()
|
||||||
|
{
|
||||||
|
public BasicDb(IDbConnection database)
|
||||||
|
{
|
||||||
|
Database = database;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IDbConnection Database { get; private set; }
|
||||||
|
|
||||||
|
public IEnumerable<TModel> All()
|
||||||
|
{
|
||||||
|
return Database.Select<TModel>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Count()
|
||||||
|
{
|
||||||
|
return (int)Database.Count<TModel>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public TModel Get(int id)
|
||||||
|
{
|
||||||
|
return Database.GetById<TModel>(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
//public TModel Single()
|
||||||
|
//{
|
||||||
|
// return Queryable.Single();
|
||||||
|
//}
|
||||||
|
|
||||||
|
//public TModel SingleOrDefault()
|
||||||
|
//{
|
||||||
|
// return Queryable.SingleOrDefault();
|
||||||
|
//}
|
||||||
|
|
||||||
|
public TModel Insert(TModel model)
|
||||||
|
{
|
||||||
|
Database.Insert(model);
|
||||||
|
model.Id = (int)Database.GetLastInsertId();
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TModel Update(TModel model)
|
||||||
|
{
|
||||||
|
Database.Update(model);
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Delete(TModel model)
|
||||||
|
{
|
||||||
|
Database.Delete(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InsertMany(IList<TModel> models)
|
||||||
|
{
|
||||||
|
Database.InsertAll(models);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateMany(IList<TModel> models)
|
||||||
|
{
|
||||||
|
Database.UpdateAll(models);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeleteMany(List<TModel> models)
|
||||||
|
{
|
||||||
|
Database.DeleteAll(models);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TModel Upsert(TModel model)
|
||||||
|
{
|
||||||
|
if (model.Id == 0)
|
||||||
|
{
|
||||||
|
Database.Insert(model);
|
||||||
|
model.Id = (int)Database.GetLastInsertId();
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
Database.Update(model);
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Delete(int id)
|
||||||
|
{
|
||||||
|
Database.DeleteById<TModel>(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeleteMany(IEnumerable<int> ids)
|
||||||
|
{
|
||||||
|
Database.DeleteByIds<TModel>(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Purge()
|
||||||
|
{
|
||||||
|
Database.DeleteAll<TModel>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool HasItems()
|
||||||
|
{
|
||||||
|
return Count() > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
39
NzbDrone.Core/Datastore/DbFactory.cs
Normal file
39
NzbDrone.Core/Datastore/DbFactory.cs
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
using System.Linq;
|
||||||
|
using NzbDrone.Common;
|
||||||
|
using ServiceStack.OrmLite;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.Datastore
|
||||||
|
{
|
||||||
|
public interface IDbFactory
|
||||||
|
{
|
||||||
|
IDbConnection Create(string dbPath = null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DbFactory : IDbFactory
|
||||||
|
{
|
||||||
|
private readonly EnvironmentProvider _environmentProvider;
|
||||||
|
|
||||||
|
public DbFactory(EnvironmentProvider environmentProvider)
|
||||||
|
{
|
||||||
|
_environmentProvider = environmentProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IDbConnection Create(string dbPath = null)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(dbPath))
|
||||||
|
{
|
||||||
|
dbPath = _environmentProvider.GetObjectDbFolder();
|
||||||
|
}
|
||||||
|
|
||||||
|
var dbFactory = new OrmLiteConnectionFactory(GetConnectionString(dbPath));
|
||||||
|
return dbFactory.OpenDbConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetConnectionString(string dbPath)
|
||||||
|
{
|
||||||
|
return String.Format("Data Source={0};Version=3;", dbPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -154,6 +154,21 @@
|
|||||||
<Reference Include="RestSharp">
|
<Reference Include="RestSharp">
|
||||||
<HintPath>..\packages\RestSharp.104.1\lib\net4\RestSharp.dll</HintPath>
|
<HintPath>..\packages\RestSharp.104.1\lib\net4\RestSharp.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="ServiceStack.Common">
|
||||||
|
<HintPath>..\packages\ServiceStack.Common.3.9.42\lib\net35\ServiceStack.Common.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="ServiceStack.Interfaces">
|
||||||
|
<HintPath>..\packages\ServiceStack.Common.3.9.42\lib\net35\ServiceStack.Interfaces.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="ServiceStack.OrmLite">
|
||||||
|
<HintPath>..\packages\ServiceStack.OrmLite.Sqlite32.3.9.42\lib\net40\ServiceStack.OrmLite.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="ServiceStack.OrmLite.SqliteNET">
|
||||||
|
<HintPath>..\packages\ServiceStack.OrmLite.Sqlite32.3.9.42\lib\net40\ServiceStack.OrmLite.SqliteNET.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="ServiceStack.Text">
|
||||||
|
<HintPath>..\packages\ServiceStack.Text.3.9.42\lib\net35\ServiceStack.Text.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="siaqodb">
|
<Reference Include="siaqodb">
|
||||||
<HintPath>..\Libraries\Siaqodb\siaqodb.dll</HintPath>
|
<HintPath>..\Libraries\Siaqodb\siaqodb.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@ -165,6 +180,13 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Data.SQLite">
|
||||||
|
<HintPath>..\packages\System.Data.SQLite.1.0.84.0\lib\net40\System.Data.SQLite.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Data.SQLite.Linq">
|
||||||
|
<HintPath>..\packages\System.Data.SQLite.1.0.84.0\lib\net40\System.Data.SQLite.Linq.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
@ -184,6 +206,7 @@
|
|||||||
<Compile Include="Configuration\IConfigService.cs" />
|
<Compile Include="Configuration\IConfigService.cs" />
|
||||||
<Compile Include="Constants.cs" />
|
<Compile Include="Constants.cs" />
|
||||||
<Compile Include="ContainerExtensions.cs" />
|
<Compile Include="ContainerExtensions.cs" />
|
||||||
|
<Compile Include="Datastore\DbFactory.cs" />
|
||||||
<Compile Include="Datastore\ModelBase.cs" />
|
<Compile Include="Datastore\ModelBase.cs" />
|
||||||
<Compile Include="Datastore\BasicRepository.cs" />
|
<Compile Include="Datastore\BasicRepository.cs" />
|
||||||
<Compile Include="Datastore\ObjectDbFactory.cs" />
|
<Compile Include="Datastore\ObjectDbFactory.cs" />
|
||||||
@ -559,6 +582,12 @@
|
|||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="NzbDrone.ico" />
|
<Content Include="NzbDrone.ico" />
|
||||||
|
<Content Include="x64\SQLite.Interop.dll">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="x86\SQLite.Interop.dll">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Core.Datastore;
|
using NzbDrone.Core.Datastore;
|
||||||
|
using ServiceStack.OrmLite;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Tv
|
namespace NzbDrone.Core.Tv
|
||||||
{
|
{
|
||||||
public interface ISeasonRepository : IBasicRepository<Season>
|
public interface ISeasonRepository : IBasicDb<Season>
|
||||||
{
|
{
|
||||||
IList<int> GetSeasonNumbers(int seriesId);
|
IList<int> GetSeasonNumbers(int seriesId);
|
||||||
Season Get(int seriesId, int seasonNumber);
|
Season Get(int seriesId, int seasonNumber);
|
||||||
@ -14,26 +14,28 @@ public interface ISeasonRepository : IBasicRepository<Season>
|
|||||||
List<Season> GetSeasonBySeries(int seriesId);
|
List<Season> GetSeasonBySeries(int seriesId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SeasonRepository : BasicRepository<Season>, ISeasonRepository
|
public class SeasonRepository : BasicDb<Season>, ISeasonRepository
|
||||||
{
|
{
|
||||||
public SeasonRepository(IObjectDatabase database)
|
private readonly IDbConnection _database;
|
||||||
|
|
||||||
|
public SeasonRepository(IDbConnection database)
|
||||||
: base(database)
|
: base(database)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public IList<int> GetSeasonNumbers(int seriesId)
|
public IList<int> GetSeasonNumbers(int seriesId)
|
||||||
{
|
{
|
||||||
return Queryable.Where(c => c.SeriesId == seriesId).Select(c => c.SeasonNumber).ToList();
|
return _database.List<int>("SELECT SeasonNumber WHERE SeriesId = {0}", seriesId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Season Get(int seriesId, int seasonNumber)
|
public Season Get(int seriesId, int seasonNumber)
|
||||||
{
|
{
|
||||||
return Queryable.Single(c => c.SeriesId == seriesId && c.SeasonNumber == seasonNumber);
|
return _database.Select<Season>(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber).Single();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsIgnored(int seriesId, int seasonNumber)
|
public bool IsIgnored(int seriesId, int seasonNumber)
|
||||||
{
|
{
|
||||||
var season = Queryable.SingleOrDefault(c => c.Id == seriesId && c.SeasonNumber == seasonNumber);
|
var season = _database.Select<Season>(s => s.SeriesId == seriesId && s.SeasonNumber == seasonNumber).SingleOrDefault();
|
||||||
|
|
||||||
if(season == null) return false;
|
if(season == null) return false;
|
||||||
|
|
||||||
@ -42,8 +44,7 @@ public bool IsIgnored(int seriesId, int seasonNumber)
|
|||||||
|
|
||||||
public List<Season> GetSeasonBySeries(int seriesId)
|
public List<Season> GetSeasonBySeries(int seriesId)
|
||||||
{
|
{
|
||||||
return Queryable.Where(c => c.SeriesId == seriesId).ToList();
|
return _database.Select<Season>(s => s.SeriesId == seriesId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -36,7 +36,7 @@ public class Series : ModelBase
|
|||||||
public DateTime? LastDiskSync { get; set; }
|
public DateTime? LastDiskSync { get; set; }
|
||||||
public int Runtime { get; set; }
|
public int Runtime { get; set; }
|
||||||
public List<MediaCover.MediaCover> Covers { get; set; }
|
public List<MediaCover.MediaCover> Covers { get; set; }
|
||||||
public SeriesTypes SeriesTypes { get; set; }
|
public SeriesTypes SeriesType { get; set; }
|
||||||
public BacklogSettingType BacklogSetting { get; set; }
|
public BacklogSettingType BacklogSetting { get; set; }
|
||||||
public string Network { get; set; }
|
public string Network { get; set; }
|
||||||
public DateTime? CustomStartDate { get; set; }
|
public DateTime? CustomStartDate { get; set; }
|
||||||
|
@ -1,50 +1,50 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NzbDrone.Common;
|
|
||||||
using NzbDrone.Core.Datastore;
|
using NzbDrone.Core.Datastore;
|
||||||
|
using ServiceStack.OrmLite;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Tv
|
namespace NzbDrone.Core.Tv
|
||||||
{
|
{
|
||||||
public interface ISeriesRepository : IBasicRepository<Series>
|
public interface ISeriesRepository : IBasicDb<Series>
|
||||||
{
|
{
|
||||||
bool SeriesPathExists(string path);
|
bool SeriesPathExists(string path);
|
||||||
List<Series> Search(string title);
|
List<Series> Search(string title);
|
||||||
Series GetByTitle(string cleanTitle);
|
Series GetByTitle(string cleanTitle);
|
||||||
Series FindByTvdbId(int tvdbId);
|
Series FindByTvdbId(int tvdbId);
|
||||||
void SetSeriesType(int seriesId, SeriesTypes seriesTypes);
|
void SetSeriesType(int seriesId, SeriesTypes seriesTypes);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SeriesRepository : BasicRepository<Series>, ISeriesRepository
|
public class SeriesRepository : BasicDb<Series>, ISeriesRepository
|
||||||
{
|
{
|
||||||
public SeriesRepository(IObjectDatabase objectDatabase)
|
public SeriesRepository(IDbConnection database)
|
||||||
: base(objectDatabase)
|
: base(database)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SeriesPathExists(string path)
|
public bool SeriesPathExists(string path)
|
||||||
{
|
{
|
||||||
return Queryable.Any(s => DiskProvider.PathEquals(s.Path, path));
|
return Database.Exists<Series>("WHERE Path = {0}", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Series> Search(string title)
|
public List<Series> Search(string title)
|
||||||
{
|
{
|
||||||
return Queryable.Where(s => s.Title.Contains(title)).ToList();
|
return Database.Select<Series>(s => s.Title.Contains(title));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Series GetByTitle(string cleanTitle)
|
public Series GetByTitle(string cleanTitle)
|
||||||
{
|
{
|
||||||
return Queryable.SingleOrDefault(s => s.CleanTitle.Equals(cleanTitle));
|
return Database.Select<Series>(s => s.CleanTitle.Equals(cleanTitle)).SingleOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Series FindByTvdbId(int tvdbId)
|
public Series FindByTvdbId(int tvdbId)
|
||||||
{
|
{
|
||||||
return Queryable.SingleOrDefault(s => s.TvDbId == tvdbId);
|
return Database.Select<Series>(s => s.TvDbId.Equals(tvdbId)).SingleOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSeriesType(int seriesId, SeriesTypes seriesTypes)
|
public void SetSeriesType(int seriesId, SeriesTypes seriesType)
|
||||||
{
|
{
|
||||||
ObjectDatabase.UpdateField(new Series(){Id = seriesId, SeriesTypes =seriesTypes }, "SeriesType");
|
Database.UpdateOnly(new Series { SeriesType = seriesType }, s => s.SeriesType, s => s.Id == seriesId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,7 +9,11 @@
|
|||||||
<package id="NLog" version="2.0.0.2000" />
|
<package id="NLog" version="2.0.0.2000" />
|
||||||
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net40" />
|
<package id="Prowlin" version="0.9.4456.26422" targetFramework="net40" />
|
||||||
<package id="RestSharp" version="104.1" targetFramework="net40" />
|
<package id="RestSharp" version="104.1" targetFramework="net40" />
|
||||||
|
<package id="ServiceStack.Common" version="3.9.42" targetFramework="net40" />
|
||||||
|
<package id="ServiceStack.OrmLite.Sqlite32" version="3.9.42" targetFramework="net40" />
|
||||||
|
<package id="ServiceStack.Text" version="3.9.42" targetFramework="net40" />
|
||||||
<package id="SignalR.Hosting.Common" version="0.5.3" targetFramework="net40" />
|
<package id="SignalR.Hosting.Common" version="0.5.3" targetFramework="net40" />
|
||||||
<package id="SignalR.Server" version="0.5.3" targetFramework="net40" />
|
<package id="SignalR.Server" version="0.5.3" targetFramework="net40" />
|
||||||
|
<package id="System.Data.SQLite" version="1.0.84.0" targetFramework="net40" />
|
||||||
<package id="twitterizer" version="2.4.0.26532" />
|
<package id="twitterizer" version="2.4.0.26532" />
|
||||||
</packages>
|
</packages>
|
BIN
NzbDrone.Core/x86/SQLite.Interop.dll
Normal file
BIN
NzbDrone.Core/x86/SQLite.Interop.dll
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user