diff --git a/src/NadekoBot/Migrations/20160824013005_FirstMigration.Designer.cs b/src/NadekoBot/Migrations/20160824013005_FirstMigration.Designer.cs new file mode 100644 index 00000000..eefddece --- /dev/null +++ b/src/NadekoBot/Migrations/20160824013005_FirstMigration.Designer.cs @@ -0,0 +1,36 @@ +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using NadekoBot.Services.Database.Impl; + +namespace NadekoBot.Migrations +{ + [DbContext(typeof(NadekoSqliteContext))] + [Migration("20160824013005_FirstMigration")] + partial class FirstMigration + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "1.0.0-rtm-21431"); + + modelBuilder.Entity("NadekoBot.Services.Database.Models.Quote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Keyword"); + + b.Property("Text"); + + b.Property("UserName"); + + b.HasKey("Id"); + + b.ToTable("Quotes"); + }); + } + } +} diff --git a/src/NadekoBot/Migrations/20160824013005_FirstMigration.cs b/src/NadekoBot/Migrations/20160824013005_FirstMigration.cs new file mode 100644 index 00000000..4cafa3d3 --- /dev/null +++ b/src/NadekoBot/Migrations/20160824013005_FirstMigration.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace NadekoBot.Migrations +{ + public partial class FirstMigration : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Quotes", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Autoincrement", true), + Keyword = table.Column(nullable: true), + Text = table.Column(nullable: true), + UserName = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Quotes", x => x.Id); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Quotes"); + } + } +} diff --git a/src/NadekoBot/Migrations/NadekoSqliteContextModelSnapshot.cs b/src/NadekoBot/Migrations/NadekoSqliteContextModelSnapshot.cs new file mode 100644 index 00000000..d9137a28 --- /dev/null +++ b/src/NadekoBot/Migrations/NadekoSqliteContextModelSnapshot.cs @@ -0,0 +1,35 @@ +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using NadekoBot.Services.Database.Impl; + +namespace NadekoBot.Migrations +{ + [DbContext(typeof(NadekoSqliteContext))] + partial class NadekoSqliteContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { + modelBuilder + .HasAnnotation("ProductVersion", "1.0.0-rtm-21431"); + + modelBuilder.Entity("NadekoBot.Services.Database.Models.Quote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Keyword"); + + b.Property("Text"); + + b.Property("UserName"); + + b.HasKey("Id"); + + b.ToTable("Quotes"); + }); + } + } +} diff --git a/src/NadekoBot/Modules/Administration/AdministrationModule.cs b/src/NadekoBot/Modules/Administration/AdministrationModule.cs index 1d849a3b..a9cfa5e2 100644 --- a/src/NadekoBot/Modules/Administration/AdministrationModule.cs +++ b/src/NadekoBot/Modules/Administration/AdministrationModule.cs @@ -52,7 +52,7 @@ namespace NadekoBot.Modules.Administration // else // await channel.SendMessageAsync("❗`Stopped automatic deletion of successfull command invokations.`"); //} - + [LocalizedCommand, LocalizedDescription, LocalizedSummary] [RequireContext(ContextType.Guild)] [RequirePermission(GuildPermission.ManageRoles)] diff --git a/src/NadekoBot/Modules/Searches/Commands/LoLCommands.cs b/src/NadekoBot/Modules/Searches/Commands/LoLCommands.cs index 7ff589a3..81366edf 100644 --- a/src/NadekoBot/Modules/Searches/Commands/LoLCommands.cs +++ b/src/NadekoBot/Modules/Searches/Commands/LoLCommands.cs @@ -51,7 +51,7 @@ namespace NadekoBot.Modules.Searches .ConfigureAwait(false))["data"] as JArray; var dataList = data.Distinct(new ChampionNameComparer()).Take(showCount).ToList(); var sb = new StringBuilder(); - sb.AppendLine($"**Showing {showCount} top banned champions.**"); + sb.AppendLine($"**Showing {dataList.Count} top banned champions.**"); sb.AppendLine($"`{trashTalk[new Random().Next(0, trashTalk.Length)]}`"); for (var i = 0; i < dataList.Count; i++) { diff --git a/src/NadekoBot/Modules/Searches/Commands/OsuCommands.cs b/src/NadekoBot/Modules/Searches/Commands/OsuCommands.cs index 1f77ba04..6988f59d 100644 --- a/src/NadekoBot/Modules/Searches/Commands/OsuCommands.cs +++ b/src/NadekoBot/Modules/Searches/Commands/OsuCommands.cs @@ -133,9 +133,9 @@ namespace NadekoBot.Modules.Searches var acc = CalculateAcc(item, m); var mods = ResolveMods(Int32.Parse($"{item["enabled_mods"]}")); if (mods != "+") - sb.AppendLine($"{pp + "pp",-7} | {acc + "%",-7} | {map["artist"] + "-" + map["title"] + " (" + map["version"],-40}) | **{mods,-10}** | /b/{item["beatmap_id"]}"); + sb.AppendLine($"{pp + "pp",-7} | {acc + "%",-7} | {map["artist"] + "-" + map["title"] + " (" + map["version"] + ")",-40} | **{mods,-10}** | /b/{item["beatmap_id"]}"); else - sb.AppendLine($"{pp + "pp",-7} | {acc + "%",-7} | {map["artist"] + "-" + map["title"] + " (" + map["version"],-40}) | /b/{item["beatmap_id"]}"); + sb.AppendLine($"{pp + "pp",-7} | {acc + "%",-7} | {map["artist"] + "-" + map["title"] + " (" + map["version"] + ")",-40} | /b/{item["beatmap_id"]}"); } sb.Append("```"); await channel.SendMessageAsync(sb.ToString()).ConfigureAwait(false); diff --git a/src/NadekoBot/Modules/Utility/Utility.cs b/src/NadekoBot/Modules/Utility/Utility.cs index a9f9ecbb..12ff226e 100644 --- a/src/NadekoBot/Modules/Utility/Utility.cs +++ b/src/NadekoBot/Modules/Utility/Utility.cs @@ -25,7 +25,7 @@ namespace NadekoBot.Modules.Utility [LocalizedCommand, LocalizedDescription, LocalizedSummary] [RequireContext(ContextType.Guild)] - public async Task WhoPlays(IMessage imsg, [Remainder] string game = null) + public async Task WhosPlaying(IMessage imsg, [Remainder] string game = null) { var channel = (ITextChannel)imsg.Channel; game = game.Trim().ToUpperInvariant(); diff --git a/src/NadekoBot/Resources/CommandStrings.Designer.cs b/src/NadekoBot/Resources/CommandStrings.Designer.cs index e925fecc..82c81de2 100644 --- a/src/NadekoBot/Resources/CommandStrings.Designer.cs +++ b/src/NadekoBot/Resources/CommandStrings.Designer.cs @@ -3813,7 +3813,7 @@ namespace NadekoBot.Resources { } /// - /// Looks up a localized string similar to Shows top 6 banned champions ordered by ban rate. Ban these champions and you will be Plat 5 in no time.. + /// Looks up a localized string similar to Shows top banned champions ordered by ban rate.. /// public static string lolban_desc { get { @@ -7433,27 +7433,27 @@ namespace NadekoBot.Resources { /// /// Looks up a localized string similar to Shows a list of users who are playing the specified game.. /// - public static string whoplays_desc { + public static string whosplaying_desc { get { - return ResourceManager.GetString("whoplays_desc", resourceCulture); + return ResourceManager.GetString("whosplaying_desc", resourceCulture); } } /// /// Looks up a localized string similar to `.whoplays Overwatch`. /// - public static string whoplays_summary { + public static string whosplaying_summary { get { - return ResourceManager.GetString("whoplays_summary", resourceCulture); + return ResourceManager.GetString("whosplaying_summary", resourceCulture); } } /// - /// Looks up a localized string similar to whoplays. + /// Looks up a localized string similar to whosplaying. /// - public static string whoplays_text { + public static string whosplaying_text { get { - return ResourceManager.GetString("whoplays_text", resourceCulture); + return ResourceManager.GetString("whosplaying_text", resourceCulture); } } diff --git a/src/NadekoBot/Resources/CommandStrings.resx b/src/NadekoBot/Resources/CommandStrings.resx index ef9e269b..d63ba666 100644 --- a/src/NadekoBot/Resources/CommandStrings.resx +++ b/src/NadekoBot/Resources/CommandStrings.resx @@ -864,13 +864,13 @@ `.uinfo @SomeUser` - - whoplays + + whosplaying - + Shows a list of users who are playing the specified game. - + `.whoplays Overwatch` @@ -1939,7 +1939,7 @@ lolban - Shows top 6 banned champions ordered by ban rate. Ban these champions and you will be Plat 5 in no time. + Shows top banned champions ordered by ban rate. `~lolban` diff --git a/src/NadekoBot/Services/Database/IUnitOfWork.cs b/src/NadekoBot/Services/Database/IUnitOfWork.cs new file mode 100644 index 00000000..e7bcbff7 --- /dev/null +++ b/src/NadekoBot/Services/Database/IUnitOfWork.cs @@ -0,0 +1,15 @@ +using NadekoBot.Services.Database.Repositories; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database +{ + public interface IUnitOfWork : IDisposable + { + IQuoteRepository Quotes { get; } + Task Complete(); + } +} diff --git a/src/NadekoBot/Services/Database/Impl/NadekoSqlServerContext.cs b/src/NadekoBot/Services/Database/Impl/NadekoSqlServerContext.cs new file mode 100644 index 00000000..c2469b1f --- /dev/null +++ b/src/NadekoBot/Services/Database/Impl/NadekoSqlServerContext.cs @@ -0,0 +1,18 @@ +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; +//using Microsoft.EntityFrameworkCore; + +//namespace NadekoBot.Services.Database.Impl +//{ +// public class NadekoSqlServerContext : NadekoContext +// { +// protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +// { +// //CONFIGURE SQL SERVER HERE +// optionsBuilder.UseSqlite("Filename=./NadekoBot.db"); +// } +// } +//} diff --git a/src/NadekoBot/Services/Database/Impl/NadekoSqliteContext.cs b/src/NadekoBot/Services/Database/Impl/NadekoSqliteContext.cs new file mode 100644 index 00000000..72e52ee0 --- /dev/null +++ b/src/NadekoBot/Services/Database/Impl/NadekoSqliteContext.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; + +namespace NadekoBot.Services.Database.Impl +{ + public class NadekoSqliteContext : NadekoContext + { + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + optionsBuilder.UseSqlite("Filename=./NadekoBot.db"); + } + } +} diff --git a/src/NadekoBot/Services/Database/Models/DbEntity.cs b/src/NadekoBot/Services/Database/Models/DbEntity.cs new file mode 100644 index 00000000..5580f39a --- /dev/null +++ b/src/NadekoBot/Services/Database/Models/DbEntity.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database.Models +{ + public class DbEntity + { + [Key] + public int Id { get; set; } + public DateTime DateAdded { get; } = DateTime.UtcNow; + } +} diff --git a/src/NadekoBot/Services/Database/Models/Quote.cs b/src/NadekoBot/Services/Database/Models/Quote.cs new file mode 100644 index 00000000..77883503 --- /dev/null +++ b/src/NadekoBot/Services/Database/Models/Quote.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database.Models +{ + public class Quote : DbEntity + { + public string UserName { get; set; } + public string Keyword { get; set; } + public string Text { get; set; } + } +} diff --git a/src/NadekoBot/Services/Database/NadekoContext.cs b/src/NadekoBot/Services/Database/NadekoContext.cs new file mode 100644 index 00000000..9bf8f89a --- /dev/null +++ b/src/NadekoBot/Services/Database/NadekoContext.cs @@ -0,0 +1,17 @@ +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using JetBrains.Annotations; +using NadekoBot.Services.Database.Models; + +namespace NadekoBot.Services.Database +{ + public abstract class NadekoContext : DbContext + { + public DbSet Quotes { get; } + + protected abstract override void OnConfiguring(DbContextOptionsBuilder optionsBuilder); + } +} diff --git a/src/NadekoBot/Services/Database/Repositories/Extensions.cs b/src/NadekoBot/Services/Database/Repositories/Extensions.cs new file mode 100644 index 00000000..0eff5d4e --- /dev/null +++ b/src/NadekoBot/Services/Database/Repositories/Extensions.cs @@ -0,0 +1,52 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using NadekoBot.Services.Database.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database.Repositories +{ + //some guy from stack overflow wrotethis, thanks to him :D + public static class Extensions + { + public static TEntity Find(this DbSet set, params object[] keyValues) where TEntity : DbEntity + { + var context = ((IInfrastructure)set).GetService(); + + var entityType = context.Model.FindEntityType(typeof(TEntity)); + var key = entityType.FindPrimaryKey(); + + var entries = context.ChangeTracker.Entries(); + + var i = 0; + foreach (var property in key.Properties) + { + entries = entries.Where(e => e.Property(property.Name).CurrentValue == keyValues[i]); + i++; + } + + var entry = entries.FirstOrDefault(); + if (entry != null) + { + // Return the local object if it exists. + return entry.Entity; + } + + // TODO: Build the real LINQ Expression + // set.Where(x => x.Id == keyValues[0]); + var parameter = Expression.Parameter(typeof(TEntity), "x"); + var query = set.Where((Expression>) + Expression.Lambda( + Expression.Equal( + Expression.Property(parameter, "Id"), + Expression.Constant(keyValues[0])), + parameter)); + + // Look in the database + return query.FirstOrDefault(); + } + } +} diff --git a/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs b/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs new file mode 100644 index 00000000..349a7bca --- /dev/null +++ b/src/NadekoBot/Services/Database/Repositories/IQuoteRepository.cs @@ -0,0 +1,15 @@ +using NadekoBot.Services.Database.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database.Repositories +{ + public interface IQuoteRepository : IRepository + { + IEnumerable GetQuotesByText(string text); + Task GetRandomQuoteByTextAsync(string text); + } +} diff --git a/src/NadekoBot/Services/Database/Repositories/IRepository.cs b/src/NadekoBot/Services/Database/Repositories/IRepository.cs new file mode 100644 index 00000000..e48a145a --- /dev/null +++ b/src/NadekoBot/Services/Database/Repositories/IRepository.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using NadekoBot.Services.Database.Models; + +namespace NadekoBot.Services.Database.Repositories +{ + public interface IRepository where T : DbEntity + { + T Get(int id); + IEnumerable GetAll(); + + void Add(T obj); + void AddRange(params T[] objs); + + void Remove(int id); + void Remove(T obj); + void RemoveRange(params T[] ids); + + void Update(T obj); + void UpdateRange(params T[] objs); + } +} diff --git a/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs b/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs new file mode 100644 index 00000000..44b8789f --- /dev/null +++ b/src/NadekoBot/Services/Database/Repositories/Impl/QuoteRepository.cs @@ -0,0 +1,27 @@ +using NadekoBot.Services.Database.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using NadekoBot.Services.Database; + +namespace NadekoBot.Services.Database.Repositories.Impl +{ + public class QuoteRepository : Repository, IQuoteRepository + { + public QuoteRepository(DbContext context) : base(context) + { + } + + public IEnumerable GetQuotesByText(string text) => + _set.Where(q => q.Text == text); + + public Task GetRandomQuoteByTextAsync(string text) + { + var rng = new Random(); + return _set.Where(q => q.Text == text).OrderBy(q => rng.Next()).FirstOrDefaultAsync(); + } + } +} diff --git a/src/NadekoBot/Services/Database/Repositories/Impl/Repository.cs b/src/NadekoBot/Services/Database/Repositories/Impl/Repository.cs new file mode 100644 index 00000000..caaeddf8 --- /dev/null +++ b/src/NadekoBot/Services/Database/Repositories/Impl/Repository.cs @@ -0,0 +1,49 @@ +using Microsoft.EntityFrameworkCore; +using NadekoBot.Services.Database.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database.Repositories.Impl +{ + public class Repository : IRepository where T : DbEntity + { + protected DbContext _context; + protected DbSet _set; + + public Repository(DbContext context) + { + _context = context; + _set = context.Set(); + } + + public void Add(T obj) => + _set.Add(obj); + + public void AddRange(params T[] objs) => + _set.AddRange(objs); + + public T Get(int id) => + _set.Find(id); + + public IEnumerable GetAll() => + _set.ToList(); + + public void Remove(int id) => + _set.Remove(_set.Find(id)); + + public void Remove(T obj) => + _set.Remove(obj); + + public void RemoveRange(params T[] objs) => + _set.RemoveRange(objs); + + public void Update(T obj) => + _set.Update(obj); + + public void UpdateRange(params T[] objs) => + _set.UpdateRange(objs); + } +} diff --git a/src/NadekoBot/Services/Database/UnitOfWork.cs b/src/NadekoBot/Services/Database/UnitOfWork.cs new file mode 100644 index 00000000..d5934865 --- /dev/null +++ b/src/NadekoBot/Services/Database/UnitOfWork.cs @@ -0,0 +1,43 @@ +using NadekoBot.Services.Database.Repositories; +using NadekoBot.Services.Database.Repositories.Impl; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services.Database +{ + public class UnitOfWork : IUnitOfWork + { + private NadekoContext _context; + + private IQuoteRepository _quotes; + public IQuoteRepository Quotes => _quotes ?? (_quotes = new QuoteRepository(_context)); + + + public UnitOfWork(NadekoContext context) + { + + } + + public Task Complete() => + _context.SaveChangesAsync(); + + private bool disposed = false; + + protected void Dispose(bool disposing) + { + if (!this.disposed) + if (disposing) + _context.Dispose(); + this.disposed = true; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + } +} diff --git a/src/NadekoBot/Services/DbHandler.cs b/src/NadekoBot/Services/DbHandler.cs new file mode 100644 index 00000000..f84f669f --- /dev/null +++ b/src/NadekoBot/Services/DbHandler.cs @@ -0,0 +1,42 @@ +using NadekoBot.Services.Database; +using NadekoBot.Services.Database.Impl; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NadekoBot.Services +{ + public class DbHandler + { + private Type dbType; + + private static DbHandler _instance = null; + public static DbHandler Instance = _instance ?? (_instance = new DbHandler()); + + + static DbHandler() { } + + private DbHandler() { + switch (NadekoBot.Credentials.Db.Type.ToUpperInvariant()) + { + case "SQLITE": + dbType = typeof(NadekoSqliteContext); + break; + //case "SQLSERVER": + // dbType = typeof(NadekoSqlServerContext); + // break; + default: + break; + + } + } + + public NadekoContext GetDbContext() => + Activator.CreateInstance(dbType) as NadekoContext; + + public UnitOfWork GetUnitOfWork() => + new UnitOfWork(GetDbContext()); + } +} diff --git a/src/NadekoBot/Services/IBotCredentials.cs b/src/NadekoBot/Services/IBotCredentials.cs index d5a27306..385b0e27 100644 --- a/src/NadekoBot/Services/IBotCredentials.cs +++ b/src/NadekoBot/Services/IBotCredentials.cs @@ -13,6 +13,19 @@ namespace NadekoBot.Services string MashapeKey { get; } string LoLApiKey { get; } + DB Db { get; } + bool IsOwner(IUser u); } + + public class DB + { + public DB(string type, string connString) + { + this.Type = type; + this.ConnectionString = connString; + } + public string Type { get; } + public string ConnectionString { get; } + } } diff --git a/src/NadekoBot/Services/Impl/BotCredentials.cs b/src/NadekoBot/Services/Impl/BotCredentials.cs index f2515391..45d3945f 100644 --- a/src/NadekoBot/Services/Impl/BotCredentials.cs +++ b/src/NadekoBot/Services/Impl/BotCredentials.cs @@ -27,6 +27,8 @@ namespace NadekoBot.Services.Impl public string OsuApiKey { get; } public string SoundCloudClientId { get; } + public DB Db { get; } + public BotCredentials() { _log = LogManager.GetCurrentClassLogger(); @@ -40,6 +42,7 @@ namespace NadekoBot.Services.Impl MashapeKey = cm.MashapeKey; OsuApiKey = cm.OsuApiKey; SoundCloudClientId = cm.SoundCloudClientId; + Db = new DB(string.IsNullOrWhiteSpace(cm.Db.Type) ? cm.Db.Type : "sqlite", cm.Db.ConnectionString); } else _log.Fatal("credentials.json is missing. Failed to start."); @@ -54,6 +57,13 @@ namespace NadekoBot.Services.Impl public string MashapeKey { get; set; } public string OsuApiKey { get; set; } public string SoundCloudClientId { get; set; } + public DB Db { get; set; } + } + + private class DbModel + { + public string Type { get; set; } + public string ConnectionString { get; set; } } public bool IsOwner(IUser u) => OwnerIds.Contains(u.Id); diff --git a/src/NadekoBot/project.json b/src/NadekoBot/project.json index 329311cc..4e1f4732 100644 --- a/src/NadekoBot/project.json +++ b/src/NadekoBot/project.json @@ -27,9 +27,14 @@ "Google.Apis.Urlshortener.v1": "1.15.0.138", "System.Diagnostics.Contracts": "4.0.1", "NLog": "4.4.0-betaV15", - "VideoLibrary": "1.3.4" + "VideoLibrary": "1.3.4", + "Microsoft.EntityFrameworkCore": "1.0.0", + "Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final", + "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0" + }, + "tools": { + "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" }, - "frameworks": { "netcoreapp1.0": { "imports": [ diff --git a/src/NadekoBot/project.lock.json b/src/NadekoBot/project.lock.json index 4fb84727..b3b8ffc6 100644 --- a/src/NadekoBot/project.lock.json +++ b/src/NadekoBot/project.lock.json @@ -120,12 +120,108 @@ "Microsoft.NETCore.Platforms": "1.0.1" }, "runtimeTargets": { - "runtimes/osx/native/_._": { + "runtimes/debian-x64/native/libuv.so": { + "assetType": "native", + "rid": "debian-x64" + }, + "runtimes/fedora-x64/native/libuv.so": { + "assetType": "native", + "rid": "fedora-x64" + }, + "runtimes/opensuse-x64/native/libuv.so": { + "assetType": "native", + "rid": "opensuse-x64" + }, + "runtimes/osx/native/libuv.dylib": { "assetType": "native", "rid": "osx" + }, + "runtimes/rhel-x64/native/libuv.so": { + "assetType": "native", + "rid": "rhel-x64" + }, + "runtimes/win7-arm/native/libuv.dll": { + "assetType": "native", + "rid": "win7-arm" + }, + "runtimes/win7-x64/native/libuv.dll": { + "assetType": "native", + "rid": "win7-x64" + }, + "runtimes/win7-x86/native/libuv.dll": { + "assetType": "native", + "rid": "win7-x86" } } }, + "Microsoft.AspNetCore.Hosting.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Hosting.Server.Abstractions": "1.0.0", + "Microsoft.AspNetCore.Http.Abstractions": "1.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "1.0.0", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0" + }, + "compile": { + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Abstractions.dll": {} + } + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "1.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "1.0.0" + }, + "compile": { + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": {} + } + }, + "Microsoft.AspNetCore.Http.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "1.0.0", + "System.Globalization.Extensions": "4.0.1", + "System.Linq.Expressions": "4.1.0", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encodings.Web": "4.0.0" + }, + "compile": { + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Abstractions.dll": {} + } + }, + "Microsoft.AspNetCore.Http.Features/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0", + "System.Collections": "4.0.11", + "System.ComponentModel": "4.0.1", + "System.Linq": "4.1.0", + "System.Net.Primitives": "4.0.11", + "System.Net.WebSockets": "4.0.0", + "System.Runtime.Extensions": "4.1.0", + "System.Security.Claims": "4.0.1", + "System.Security.Cryptography.X509Certificates": "4.1.0", + "System.Security.Principal": "4.0.1" + }, + "compile": { + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Features.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Features.dll": {} + } + }, "Microsoft.CodeAnalysis.Analyzers/1.1.0": { "type": "package" }, @@ -176,7 +272,7 @@ "lib/netstandard1.3/_._": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/Microsoft.CodeAnalysis.dll": {} } }, "Microsoft.CodeAnalysis.CSharp/1.3.0": { @@ -188,7 +284,7 @@ "lib/netstandard1.3/_._": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/Microsoft.CodeAnalysis.CSharp.dll": {} } }, "Microsoft.CodeAnalysis.VisualBasic/1.3.0": { @@ -200,7 +296,7 @@ "lib/netstandard1.3/_._": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/Microsoft.CodeAnalysis.VisualBasic.dll": {} } }, "Microsoft.CSharp/4.0.1": { @@ -230,6 +326,183 @@ "lib/netstandard1.3/Microsoft.CSharp.dll": {} } }, + "Microsoft.Data.Sqlite/1.0.0": { + "type": "package", + "dependencies": { + "SQLite": "3.12.2", + "System.AppContext": "4.1.0", + "System.Data.Common": "4.1.0", + "System.Diagnostics.Debug": "4.0.11", + "System.Linq": "4.1.0", + "System.Reflection.Extensions": "4.0.1", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding": "4.0.11" + }, + "compile": { + "lib/netstandard1.3/Microsoft.Data.Sqlite.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Data.Sqlite.dll": {} + } + }, + "Microsoft.EntityFrameworkCore/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Memory": "1.0.0", + "Microsoft.Extensions.DependencyInjection": "1.0.0", + "Microsoft.Extensions.Logging": "1.0.0", + "Remotion.Linq": "2.1.1", + "System.Collections.Concurrent": "4.0.12", + "System.Collections.Immutable": "1.2.0", + "System.ComponentModel.Annotations": "4.1.0", + "System.Interactive.Async": "3.0.0", + "System.Linq.Queryable": "4.0.1", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0" + }, + "compile": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.dll": {} + } + }, + "Microsoft.EntityFrameworkCore.Design/1.0.0-preview2-final": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Design.Core": "1.0.0-preview2-final", + "Microsoft.Extensions.CommandLineUtils": "1.0.0", + "Microsoft.NETCore.App": "1.0.0" + }, + "compile": { + "lib/netcoreapp1.0/Microsoft.EntityFrameworkCore.Design.dll": {} + }, + "runtime": { + "lib/netcoreapp1.0/Microsoft.EntityFrameworkCore.Design.dll": {} + } + }, + "Microsoft.EntityFrameworkCore.Design.Core/1.0.0-preview2-final": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Hosting.Abstractions": "1.0.0", + "Microsoft.EntityFrameworkCore.Relational.Design": "1.0.0", + "System.AppContext": "4.1.0", + "System.Collections.NonGeneric": "4.0.1", + "System.IO": "4.1.0", + "System.IO.FileSystem": "4.0.1" + }, + "compile": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Design.Core.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Design.Core.dll": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.CSharp": "4.0.1", + "Microsoft.EntityFrameworkCore": "1.0.0", + "System.Data.Common": "4.1.0", + "System.Diagnostics.DiagnosticSource": "4.0.0", + "System.Text.RegularExpressions": "4.1.0" + }, + "compile": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.dll": {} + } + }, + "Microsoft.EntityFrameworkCore.Relational.Design/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "1.0.0" + }, + "compile": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.Design.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.Design.dll": {} + } + }, + "Microsoft.EntityFrameworkCore.Sqlite/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Data.Sqlite": "1.0.0", + "Microsoft.EntityFrameworkCore.Relational": "1.0.0", + "System.IO.FileSystem": "4.0.1" + }, + "compile": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Sqlite.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Sqlite.dll": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0", + "System.Collections": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11" + }, + "compile": { + "lib/netstandard1.0/Microsoft.Extensions.Caching.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.0/Microsoft.Extensions.Caching.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Caching.Memory/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "1.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0", + "Microsoft.Extensions.Options": "1.0.0", + "System.Linq": "4.1.0", + "System.Threading": "4.0.11" + }, + "compile": { + "lib/netstandard1.3/Microsoft.Extensions.Caching.Memory.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Extensions.Caching.Memory.dll": {} + } + }, + "Microsoft.Extensions.CommandLineUtils/1.0.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.11", + "System.Console": "4.0.0", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.Resources.ResourceManager": "4.0.1" + }, + "compile": { + "lib/netstandard1.3/Microsoft.Extensions.CommandLineUtils.dll": {} + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Extensions.CommandLineUtils.dll": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0", + "System.Linq": "4.1.0" + }, + "compile": { + "lib/netstandard1.0/Microsoft.Extensions.Configuration.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.0/Microsoft.Extensions.Configuration.Abstractions.dll": {} + } + }, "Microsoft.Extensions.DependencyInjection/1.0.0": { "type": "package", "dependencies": { @@ -265,6 +538,76 @@ "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} } }, + "Microsoft.Extensions.FileProviders.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "1.0.0", + "System.IO": "4.1.0", + "System.Resources.ResourceManager": "4.0.1" + }, + "compile": { + "lib/netstandard1.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Logging/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0", + "Microsoft.Extensions.Logging.Abstractions": "1.0.0", + "System.Threading": "4.0.11" + }, + "compile": { + "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": {} + }, + "runtime": { + "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/1.0.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.11", + "System.Collections.Concurrent": "4.0.12", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0" + }, + "compile": { + "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Options/1.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0", + "Microsoft.Extensions.Primitives": "1.0.0", + "System.ComponentModel": "4.0.1", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + }, + "compile": { + "lib/netstandard1.0/Microsoft.Extensions.Options.dll": {} + }, + "runtime": { + "lib/netstandard1.0/Microsoft.Extensions.Options.dll": {} + } + }, "Microsoft.Extensions.PlatformAbstractions/1.0.0": { "type": "package", "dependencies": { @@ -282,6 +625,19 @@ "lib/netstandard1.3/Microsoft.Extensions.PlatformAbstractions.dll": {} } }, + "Microsoft.Extensions.Primitives/1.0.0": { + "type": "package", + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + }, + "compile": { + "lib/netstandard1.0/Microsoft.Extensions.Primitives.dll": {} + }, + "runtime": { + "lib/netstandard1.0/Microsoft.Extensions.Primitives.dll": {} + } + }, "Microsoft.NETCore.App/1.0.0": { "type": "package", "dependencies": { @@ -404,7 +760,7 @@ "ref/netstandard1.1/Microsoft.VisualBasic.dll": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/Microsoft.VisualBasic.dll": {} } }, "Microsoft.Win32.Primitives/4.0.1": { @@ -578,6 +934,28 @@ "lib/netstandard1.3/crypto.dll": {} } }, + "Remotion.Linq/2.1.1": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.Linq.Queryable": "4.0.1", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + }, + "compile": { + "lib/netstandard1.0/Remotion.Linq.dll": {} + }, + "runtime": { + "lib/netstandard1.0/Remotion.Linq.dll": {} + } + }, "runtime.native.System/4.0.0": { "type": "package", "dependencies": { @@ -643,6 +1021,33 @@ "lib/netstandard1.0/_._": {} } }, + "SQLite/3.12.2": { + "type": "package", + "dependencies": { + "SQLite.Native": "3.12.2" + } + }, + "SQLite.Native/3.12.2": { + "type": "package", + "runtimeTargets": { + "runtimes/linux-x64/native/libsqlite3.so": { + "assetType": "native", + "rid": "linux-x64" + }, + "runtimes/osx-x64/native/libsqlite3.dylib": { + "assetType": "native", + "rid": "osx-x64" + }, + "runtimes/win7-x64/native/sqlite3.dll": { + "assetType": "native", + "rid": "win7-x64" + }, + "runtimes/win7-x86/native/sqlite3.dll": { + "assetType": "native", + "rid": "win7-x86" + } + } + }, "System.AppContext/4.1.0": { "type": "package", "dependencies": { @@ -791,7 +1196,7 @@ "ref/netstandard1.4/System.ComponentModel.Annotations.dll": {} }, "runtime": { - "lib/netstandard1.4/_._": {} + "lib/netstandard1.4/System.ComponentModel.Annotations.dll": {} } }, "System.ComponentModel.Primitives/4.1.0": { @@ -925,7 +1330,11 @@ "ref/netstandard1.3/_._": {} }, "runtimeTargets": { - "runtimes/win/lib/netstandard1.3/_._": { + "runtimes/unix/lib/netstandard1.3/System.Diagnostics.FileVersionInfo.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Diagnostics.FileVersionInfo.dll": { "assetType": "runtime", "rid": "win" } @@ -1122,6 +1531,25 @@ } } }, + "System.Interactive.Async/3.0.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Linq": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11" + }, + "compile": { + "lib/netstandard1.0/System.Interactive.Async.dll": {} + }, + "runtime": { + "lib/netstandard1.0/System.Interactive.Async.dll": {} + } + }, "System.IO/4.1.0": { "type": "package", "dependencies": { @@ -1280,7 +1708,11 @@ "ref/netstandard1.3/System.IO.MemoryMappedFiles.dll": {} }, "runtimeTargets": { - "runtimes/win/lib/netstandard1.3/_._": { + "runtimes/unix/lib/netstandard1.3/System.IO.MemoryMappedFiles.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.IO.MemoryMappedFiles.dll": { "assetType": "runtime", "rid": "win" } @@ -1301,7 +1733,7 @@ "ref/netstandard1.3/System.IO.UnmanagedMemoryStream.dll": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.IO.UnmanagedMemoryStream.dll": {} } }, "System.Linq/4.1.0": { @@ -1366,7 +1798,7 @@ "ref/netstandard1.1/System.Linq.Parallel.dll": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Linq.Parallel.dll": {} } }, "System.Linq.Queryable/4.0.1": { @@ -1385,7 +1817,7 @@ "ref/netstandard1.0/System.Linq.Queryable.dll": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Linq.Queryable.dll": {} } }, "System.Net.Http/4.1.0": { @@ -1552,7 +1984,11 @@ "ref/netstandard1.3/System.Net.Security.dll": {} }, "runtimeTargets": { - "runtimes/win/lib/netstandard1.3/_._": { + "runtimes/unix/lib/netstandard1.6/System.Net.Security.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Net.Security.dll": { "assetType": "runtime", "rid": "win" } @@ -1650,7 +2086,7 @@ "ref/netstandard1.0/System.Numerics.Vectors.dll": {} }, "runtime": { - "lib/netstandard1.0/_._": {} + "lib/netstandard1.0/System.Numerics.Vectors.dll": {} } }, "System.ObjectModel/4.0.12": { @@ -1703,7 +2139,7 @@ "ref/netstandard1.3/System.Reflection.DispatchProxy.dll": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Reflection.DispatchProxy.dll": {} } }, "System.Reflection.Emit/4.0.1": { @@ -1832,7 +2268,7 @@ "lib/netstandard1.0/System.Resources.Reader.dll": {} }, "runtime": { - "lib/netstandard1.0/_._": {} + "lib/netstandard1.0/System.Resources.Reader.dll": {} } }, "System.Resources.ResourceManager/4.0.1": { @@ -1955,7 +2391,7 @@ "ref/netstandard1.5/_._": {} }, "runtime": { - "lib/netstandard1.5/_._": {} + "lib/netstandard1.5/System.Runtime.Loader.dll": {} } }, "System.Runtime.Numerics/4.0.1": { @@ -1998,7 +2434,7 @@ "System.Security.Principal": "4.0.1" }, "compile": { - "ref/netstandard1.3/_._": {} + "ref/netstandard1.3/System.Security.Claims.dll": {} }, "runtime": { "lib/netstandard1.3/System.Security.Claims.dll": {} @@ -2294,7 +2730,11 @@ "ref/netstandard1.3/_._": {} }, "runtimeTargets": { - "runtimes/win/lib/netstandard1.3/_._": { + "runtimes/unix/lib/netstandard1.3/System.Text.Encoding.CodePages.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Text.Encoding.CodePages.dll": { "assetType": "runtime", "rid": "win" } @@ -2315,6 +2755,24 @@ "lib/portable-net45+win8+wp8+wpa81/_._": {} } }, + "System.Text.Encodings.Web/4.0.0": { + "type": "package", + "dependencies": { + "System.Diagnostics.Debug": "4.0.11", + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + }, + "compile": { + "lib/netstandard1.0/System.Text.Encodings.Web.dll": {} + }, + "runtime": { + "lib/netstandard1.0/System.Text.Encodings.Web.dll": {} + } + }, "System.Text.RegularExpressions/4.1.0": { "type": "package", "dependencies": { @@ -2400,7 +2858,7 @@ "lib/netstandard1.1/System.Threading.Tasks.Dataflow.dll": {} }, "runtime": { - "lib/netstandard1.1/_._": {} + "lib/netstandard1.1/System.Threading.Tasks.Dataflow.dll": {} } }, "System.Threading.Tasks.Extensions/4.0.0": { @@ -2433,7 +2891,7 @@ "ref/netstandard1.1/System.Threading.Tasks.Parallel.dll": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Threading.Tasks.Parallel.dll": {} } }, "System.Threading.Thread/4.0.0": { @@ -2559,7 +3017,7 @@ "ref/netstandard1.3/_._": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Xml.XPath.dll": {} } }, "System.Xml.XPath.XDocument/4.0.1": { @@ -2579,7 +3037,7 @@ "ref/netstandard1.3/_._": {} }, "runtime": { - "lib/netstandard1.3/_._": {} + "lib/netstandard1.3/System.Xml.XPath.XDocument.dll": {} } }, "VideoLibrary/1.3.4": { @@ -2790,6 +3248,58 @@ "runtimes/win7-x86/native/libuv.dll" ] }, + "Microsoft.AspNetCore.Hosting.Abstractions/1.0.0": { + "sha512": "8r6qOl1jYyC523ZKM1QNl+6ijIoYWELWm0tpEWqtTIOg9DytHJWshB7usgqiuRmfHXM0EUziR6ouFY7iP7Tuzw==", + "type": "package", + "path": "Microsoft.AspNetCore.Hosting.Abstractions/1.0.0", + "files": [ + "Microsoft.AspNetCore.Hosting.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.AspNetCore.Hosting.Abstractions.nuspec", + "lib/net451/Microsoft.AspNetCore.Hosting.Abstractions.dll", + "lib/net451/Microsoft.AspNetCore.Hosting.Abstractions.xml", + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Abstractions.dll", + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Abstractions.xml" + ] + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/1.0.0": { + "sha512": "sHZyhQEoW15T9E36rfdm5Ux6a6RZB0KNM79ccf2IplWASqmlRGhX4ydU3dzQRLhkHpLx16fnWOL0KScsO6BevQ==", + "type": "package", + "path": "Microsoft.AspNetCore.Hosting.Server.Abstractions/1.0.0", + "files": [ + "Microsoft.AspNetCore.Hosting.Server.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.AspNetCore.Hosting.Server.Abstractions.nuspec", + "lib/net451/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "lib/net451/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml", + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "lib/netstandard1.3/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml" + ] + }, + "Microsoft.AspNetCore.Http.Abstractions/1.0.0": { + "sha512": "OJHlqdJOWKKBfsiVdX4Z4KCNuqvBIu6+1MVKuejRDyHnGyMkNHNoP/dtVzhPqvJXaJg9N4HlD0XNc6GDCFVffg==", + "type": "package", + "path": "Microsoft.AspNetCore.Http.Abstractions/1.0.0", + "files": [ + "Microsoft.AspNetCore.Http.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.AspNetCore.Http.Abstractions.nuspec", + "lib/net451/Microsoft.AspNetCore.Http.Abstractions.dll", + "lib/net451/Microsoft.AspNetCore.Http.Abstractions.xml", + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Abstractions.dll", + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Abstractions.xml" + ] + }, + "Microsoft.AspNetCore.Http.Features/1.0.0": { + "sha512": "6x7zgfbTo1gL9xMEb7EMO2ES/48bqwnWyfH09z+ubWhnzxdhHls8rtqstPylu5FPD9nid6Vo2pgDm5vufRAy5Q==", + "type": "package", + "path": "Microsoft.AspNetCore.Http.Features/1.0.0", + "files": [ + "Microsoft.AspNetCore.Http.Features.1.0.0.nupkg.sha512", + "Microsoft.AspNetCore.Http.Features.nuspec", + "lib/net451/Microsoft.AspNetCore.Http.Features.dll", + "lib/net451/Microsoft.AspNetCore.Http.Features.xml", + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Features.dll", + "lib/netstandard1.3/Microsoft.AspNetCore.Http.Features.xml" + ] + }, "Microsoft.CodeAnalysis.Analyzers/1.1.0": { "sha512": "HS3iRWZKcUw/8eZ/08GXKY2Bn7xNzQPzf8gRPHGSowX7u7XXu9i9YEaBeBNKUXWfI7qjvT2zXtLUvbN0hds8vg==", "type": "package", @@ -2911,6 +3421,148 @@ "ref/xamarinwatchos10/_._" ] }, + "Microsoft.Data.Sqlite/1.0.0": { + "sha512": "dezlCGK9zVrPNfoX1SL50GmWDdRQNcV1SBy3wuCn/a0g7Gc26PyvlA4BKapjnCK5N8LSQ2+1PdW2imiRr+YvxA==", + "type": "package", + "path": "Microsoft.Data.Sqlite/1.0.0", + "files": [ + "Microsoft.Data.Sqlite.1.0.0.nupkg.sha512", + "Microsoft.Data.Sqlite.nuspec", + "lib/net451/Microsoft.Data.Sqlite.dll", + "lib/net451/Microsoft.Data.Sqlite.xml", + "lib/netstandard1.3/Microsoft.Data.Sqlite.dll", + "lib/netstandard1.3/Microsoft.Data.Sqlite.xml" + ] + }, + "Microsoft.EntityFrameworkCore/1.0.0": { + "sha512": "Vqg/v0cXRQZQH0gY3VHHqt0Bt5WZEkDReVpI1sNYKHVbVtnMYFKPp5SiNygosUJYrJk1rSGb8UVkplDNNUkEgg==", + "type": "package", + "path": "Microsoft.EntityFrameworkCore/1.0.0", + "files": [ + "Microsoft.EntityFrameworkCore.1.0.0.nupkg.sha512", + "Microsoft.EntityFrameworkCore.nuspec", + "lib/net451/Microsoft.EntityFrameworkCore.dll", + "lib/net451/Microsoft.EntityFrameworkCore.xml", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.dll", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.xml" + ] + }, + "Microsoft.EntityFrameworkCore.Design/1.0.0-preview2-final": { + "sha512": "RhyjntECuOVsrKjgFog9rv+V7oBsxBNxz5NviF7uHvDDQXLyHH3os/CewQxRNsve114AQH5RX/Bww6qAXlSORQ==", + "type": "package", + "path": "Microsoft.EntityFrameworkCore.Design/1.0.0-preview2-final", + "files": [ + "Microsoft.EntityFrameworkCore.Design.1.0.0-preview2-final.nupkg.sha512", + "Microsoft.EntityFrameworkCore.Design.nuspec", + "lib/net451/_._", + "lib/netcore50/_._", + "lib/netcoreapp1.0/Microsoft.EntityFrameworkCore.Design.dll", + "lib/netcoreapp1.0/Microsoft.EntityFrameworkCore.Design.runtimeconfig.json", + "lib/netcoreapp1.0/Microsoft.EntityFrameworkCore.Design.xml", + "runtimes/win7-x64/lib/net451/Microsoft.EntityFrameworkCore.Design.exe", + "runtimes/win7-x86/lib/net451/Microsoft.EntityFrameworkCore.Design.exe" + ] + }, + "Microsoft.EntityFrameworkCore.Design.Core/1.0.0-preview2-final": { + "sha512": "H3pHksGErQSEwWyvISlDYMslIXftS4XB2m0AvqBS08ECGHagh27mqm/oIyUetzzRad+C2V0zpguJmR14eMiRaA==", + "type": "package", + "path": "Microsoft.EntityFrameworkCore.Design.Core/1.0.0-preview2-final", + "files": [ + "Microsoft.EntityFrameworkCore.Design.Core.1.0.0-preview2-final.nupkg.sha512", + "Microsoft.EntityFrameworkCore.Design.Core.nuspec", + "lib/net451/Microsoft.EntityFrameworkCore.Design.Core.dll", + "lib/net451/Microsoft.EntityFrameworkCore.Design.Core.xml", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Design.Core.dll", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Design.Core.xml" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/1.0.0": { + "sha512": "LGBab+7o0eq4C3YtvkAxK8W7Ia57eO0Ue0viQgt0STptQ2bUpLzV7q5LfbNl475rt6yTWa/vDQlYVaI64fwqdw==", + "type": "package", + "path": "Microsoft.EntityFrameworkCore.Relational/1.0.0", + "files": [ + "Microsoft.EntityFrameworkCore.Relational.1.0.0.nupkg.sha512", + "Microsoft.EntityFrameworkCore.Relational.nuspec", + "lib/net451/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net451/Microsoft.EntityFrameworkCore.Relational.xml", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.xml" + ] + }, + "Microsoft.EntityFrameworkCore.Relational.Design/1.0.0": { + "sha512": "pw4EmGTp5U645is0Lyf0C6yU1uQGHVIZiRyxlDNNrRllL0ZjSFKTShv9qbE+fBpvvvArNp2HhDmP7d6vJAt0Dw==", + "type": "package", + "path": "Microsoft.EntityFrameworkCore.Relational.Design/1.0.0", + "files": [ + "Microsoft.EntityFrameworkCore.Relational.Design.1.0.0.nupkg.sha512", + "Microsoft.EntityFrameworkCore.Relational.Design.nuspec", + "lib/net451/Microsoft.EntityFrameworkCore.Relational.Design.dll", + "lib/net451/Microsoft.EntityFrameworkCore.Relational.Design.xml", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.Design.dll", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Relational.Design.xml" + ] + }, + "Microsoft.EntityFrameworkCore.Sqlite/1.0.0": { + "sha512": "GF5xfn90zVKbnCdNrjeH4j1IaAQ7FsHCWkTrdUKISzrPxG3LIizJaU2iu8YMfNhMYd5N1Y7R7SxF2dBh+5A+Ew==", + "type": "package", + "path": "Microsoft.EntityFrameworkCore.Sqlite/1.0.0", + "files": [ + "Microsoft.EntityFrameworkCore.Sqlite.1.0.0.nupkg.sha512", + "Microsoft.EntityFrameworkCore.Sqlite.nuspec", + "lib/net451/Microsoft.EntityFrameworkCore.Sqlite.dll", + "lib/net451/Microsoft.EntityFrameworkCore.Sqlite.xml", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Sqlite.dll", + "lib/netstandard1.3/Microsoft.EntityFrameworkCore.Sqlite.xml" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/1.0.0": { + "sha512": "IxlFDVOchL6tdR05bk7EiJvMtvZrVkZXBhkbXqc3GxOHOrHFGcN+92WoWFPeBpdpy8ot/Px5ZdXzt7k+2n1Bdg==", + "type": "package", + "path": "Microsoft.Extensions.Caching.Abstractions/1.0.0", + "files": [ + "Microsoft.Extensions.Caching.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Caching.Abstractions.nuspec", + "lib/netstandard1.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard1.0/Microsoft.Extensions.Caching.Abstractions.xml" + ] + }, + "Microsoft.Extensions.Caching.Memory/1.0.0": { + "sha512": "6+7zTufCnZ+tfrUo7RbIRR3LB0BxwOwxfXuo0IbLyIvgoToGpWuz5wYEDfCYNOvpig9tY8FA0I1uRHYmITMXMQ==", + "type": "package", + "path": "Microsoft.Extensions.Caching.Memory/1.0.0", + "files": [ + "Microsoft.Extensions.Caching.Memory.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Caching.Memory.nuspec", + "lib/net451/Microsoft.Extensions.Caching.Memory.dll", + "lib/net451/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard1.3/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard1.3/Microsoft.Extensions.Caching.Memory.xml" + ] + }, + "Microsoft.Extensions.CommandLineUtils/1.0.0": { + "sha512": "kXJ8+YvEjp1j7ezJ7yvQMLYbRL6QlpBUjRoBfqghoe80yqZ5azYB90lL4iNeyRCznWF+cGm41aaIoFU0aOq7TQ==", + "type": "package", + "path": "Microsoft.Extensions.CommandLineUtils/1.0.0", + "files": [ + "Microsoft.Extensions.CommandLineUtils.1.0.0.nupkg.sha512", + "Microsoft.Extensions.CommandLineUtils.nuspec", + "lib/net451/Microsoft.Extensions.CommandLineUtils.dll", + "lib/net451/Microsoft.Extensions.CommandLineUtils.xml", + "lib/netstandard1.3/Microsoft.Extensions.CommandLineUtils.dll", + "lib/netstandard1.3/Microsoft.Extensions.CommandLineUtils.xml" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/1.0.0": { + "sha512": "nJ+Et/rnDMDmGhxvFAKdN3va7y+YDPICv1nUEP8I4IKgOkWwr/dCZHMqxVhJFrkbW9ux8Kd7erC4mvxfZh0WnA==", + "type": "package", + "path": "Microsoft.Extensions.Configuration.Abstractions/1.0.0", + "files": [ + "Microsoft.Extensions.Configuration.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Configuration.Abstractions.nuspec", + "lib/netstandard1.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard1.0/Microsoft.Extensions.Configuration.Abstractions.xml" + ] + }, "Microsoft.Extensions.DependencyInjection/1.0.0": { "sha512": "zdtkiZNV6LB8xtpmfyUjP/9N9ZCL/ydQ+0bfjun38fbrk+MDEm9M2yeLzRdq+OIt5xExw/KU04wFaVwJ1bhQPg==", "type": "package", @@ -2933,6 +3585,50 @@ "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml" ] }, + "Microsoft.Extensions.FileProviders.Abstractions/1.0.0": { + "sha512": "4jsqTxG3py/hYSsOtZMkNJ2/CQqPdpwyK7bDUkrwHgqowCFSmx/C+R4IzQ+2AK2Up1fVcu+ldC0gktwidL828A==", + "type": "package", + "path": "Microsoft.Extensions.FileProviders.Abstractions/1.0.0", + "files": [ + "Microsoft.Extensions.FileProviders.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.Extensions.FileProviders.Abstractions.nuspec", + "lib/netstandard1.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/netstandard1.0/Microsoft.Extensions.FileProviders.Abstractions.xml" + ] + }, + "Microsoft.Extensions.Logging/1.0.0": { + "sha512": "0mDuASVrd/nMeBYIJSK+9lT3TSmWxUXP/ipVB1pF1ApMN5fqGCckPTNwmOfT4Z9wPkXGnhbwFTGrxZvbzTWxOg==", + "type": "package", + "path": "Microsoft.Extensions.Logging/1.0.0", + "files": [ + "Microsoft.Extensions.Logging.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Logging.nuspec", + "lib/netstandard1.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard1.1/Microsoft.Extensions.Logging.xml" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/1.0.0": { + "sha512": "wHT6oY50q36mAXBRKtFaB7u07WxKC5u2M8fi3PqHOOnHyUo9gD0u1TlCNR8UObHQxKMYwqlgI8TLcErpt29n8A==", + "type": "package", + "path": "Microsoft.Extensions.Logging.Abstractions/1.0.0", + "files": [ + "Microsoft.Extensions.Logging.Abstractions.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Logging.Abstractions.nuspec", + "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.xml" + ] + }, + "Microsoft.Extensions.Options/1.0.0": { + "sha512": "SdP3yPKF++JTkoa91pBDiE70uQkR/gdXWzOnMPbSj+eOqY1vgY+b8RVl+gh7TrJ2wlCK2QqnQtvCQlPPZRK36w==", + "type": "package", + "path": "Microsoft.Extensions.Options/1.0.0", + "files": [ + "Microsoft.Extensions.Options.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Options.nuspec", + "lib/netstandard1.0/Microsoft.Extensions.Options.dll", + "lib/netstandard1.0/Microsoft.Extensions.Options.xml" + ] + }, "Microsoft.Extensions.PlatformAbstractions/1.0.0": { "sha512": "zyjUzrOmuevOAJpIo3Mt5GmpALVYCVdLZ99keMbmCxxgQH7oxzU58kGHzE6hAgYEiWsdfMJLjVR7r+vSmaJmtg==", "type": "package", @@ -2946,6 +3642,17 @@ "lib/netstandard1.3/Microsoft.Extensions.PlatformAbstractions.xml" ] }, + "Microsoft.Extensions.Primitives/1.0.0": { + "sha512": "3q2vzfKEDjL6JFkRpk5SFA3zarYsO6+ZYgoucNImrUMzDn0mFbEOL5p9oPoWiypwypbJVVjWTf557bXZ0YFLig==", + "type": "package", + "path": "Microsoft.Extensions.Primitives/1.0.0", + "files": [ + "Microsoft.Extensions.Primitives.1.0.0.nupkg.sha512", + "Microsoft.Extensions.Primitives.nuspec", + "lib/netstandard1.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard1.0/Microsoft.Extensions.Primitives.xml" + ] + }, "Microsoft.NETCore.App/1.0.0": { "sha512": "Bv40dLDrT+Igcg1e6otW3D8voeJCfcAxOlsxSVlDz+J+cdWls5kblZvPHHvx7gX3/oJoQVIkEeO3sMyv5PSVJA==", "type": "package", @@ -3246,6 +3953,25 @@ "lib/portable-net4+sl5+wp8+win8+wpa81/crypto.xml" ] }, + "Remotion.Linq/2.1.1": { + "sha512": "IJn0BqkvwEDpP+2qjvci7n4/a9f7DhKESLWb2/uG4xQh3rTkGTBUz69bI4IivCoKkTFAqjXxYDZw2K/npohjsw==", + "type": "package", + "path": "Remotion.Linq/2.1.1", + "files": [ + "Remotion.Linq.2.1.1.nupkg.sha512", + "Remotion.Linq.nuspec", + "lib/net35/Remotion.Linq.XML", + "lib/net35/Remotion.Linq.dll", + "lib/net40/Remotion.Linq.XML", + "lib/net40/Remotion.Linq.dll", + "lib/net45/Remotion.Linq.XML", + "lib/net45/Remotion.Linq.dll", + "lib/netstandard1.0/Remotion.Linq.dll", + "lib/netstandard1.0/Remotion.Linq.xml", + "lib/portable-net45+win+wpa81+wp80/Remotion.Linq.dll", + "lib/portable-net45+win+wpa81+wp80/Remotion.Linq.xml" + ] + }, "runtime.native.System/4.0.0": { "sha512": "QfS/nQI7k/BLgmLrw7qm7YBoULEvgWnPI+cYsbfCVFTW8Aj+i8JhccxcFMu1RWms0YZzF+UHguNBK4Qn89e2Sg==", "type": "package", @@ -3306,6 +4032,29 @@ "runtime.native.System.Security.Cryptography.nuspec" ] }, + "SQLite/3.12.2": { + "sha512": "XYNQJt2eFqGluWP+fDaiNrV1v3kA+VsU2ygUjLx7zqzhIZKlAjSYMZLldmbGNnlNC5rKR+0LTrN0IA9dZkDyFw==", + "type": "package", + "path": "SQLite/3.12.2", + "files": [ + "SQLite.3.12.2.nupkg.sha512", + "SQLite.nuspec" + ] + }, + "SQLite.Native/3.12.2": { + "sha512": "/5BdEFTaCziE6K5OG0bjSUhPo+LRmFcmyriFWEZNSuHaiqSp69sVngTb/Yo8mH6JykMA79BFdCBLMW+2E3pnuA==", + "type": "package", + "path": "SQLite.Native/3.12.2", + "files": [ + "SQLite.Native.3.12.2.nupkg.sha512", + "SQLite.Native.nuspec", + "build/net45/SQLite.Native.props", + "runtimes/linux-x64/native/libsqlite3.so", + "runtimes/osx-x64/native/libsqlite3.dylib", + "runtimes/win7-x64/native/sqlite3.dll", + "runtimes/win7-x86/native/sqlite3.dll" + ] + }, "System.AppContext/4.1.0": { "sha512": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==", "type": "package", @@ -4568,6 +5317,19 @@ "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll" ] }, + "System.Interactive.Async/3.0.0": { + "sha512": "UEM+WmG1Oq0bNbPx/E1jaIQ83QOrPfVDUyuYBtG6D6DpB77ytv9flPterMujumpHuoRjSc0ilSB8w41fQc05dw==", + "type": "package", + "path": "System.Interactive.Async/3.0.0", + "files": [ + "System.Interactive.Async.3.0.0.nupkg.sha512", + "System.Interactive.Async.nuspec", + "lib/net45/System.Interactive.Async.dll", + "lib/net45/System.Interactive.Async.xml", + "lib/netstandard1.0/System.Interactive.Async.dll", + "lib/netstandard1.0/System.Interactive.Async.xml" + ] + }, "System.IO/4.1.0": { "sha512": "3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", "type": "package", @@ -7235,6 +7997,19 @@ "ref/xamarinwatchos10/_._" ] }, + "System.Text.Encodings.Web/4.0.0": { + "sha512": "TWZnuiJgPDAEEUfobD7njXvSVR2Toz+jvKWds6yL4oSztmKQfnWzucczjzA+6Dv1bktBdY71sZW1YN0X6m9chQ==", + "type": "package", + "path": "System.Text.Encodings.Web/4.0.0", + "files": [ + "System.Text.Encodings.Web.4.0.0.nupkg.sha512", + "System.Text.Encodings.Web.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/System.Text.Encodings.Web.dll", + "lib/netstandard1.0/System.Text.Encodings.Web.xml" + ] + }, "System.Text.RegularExpressions/4.1.0": { "sha512": "i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", "type": "package", @@ -7967,6 +8742,9 @@ "Discord.Net.Commands >= 1.0.0-dev", "Google.Apis.Urlshortener.v1 >= 1.15.0.138", "Google.Apis.YouTube.v3 >= 1.15.0.582", + "Microsoft.EntityFrameworkCore >= 1.0.0", + "Microsoft.EntityFrameworkCore.Design >= 1.0.0-preview2-final", + "Microsoft.EntityFrameworkCore.Sqlite >= 1.0.0", "Microsoft.Extensions.DependencyInjection >= 1.0.0", "Microsoft.Extensions.DependencyInjection.Abstractions >= 1.0.0", "Microsoft.Extensions.PlatformAbstractions >= 1.0.0", @@ -7979,6 +8757,30 @@ ], ".NETCoreApp,Version=v1.0": [] }, - "tools": {}, - "projectFileToolGroups": {} + "tools": { + ".NETCoreApp,Version=v1.0": { + "Microsoft.EntityFrameworkCore.Tools/1.0.0-preview2-final": { + "type": "package", + "dependencies": { + "Microsoft.DotNet.Cli.Utils": "1.0.0-preview2-003121", + "Microsoft.DotNet.ProjectModel": "1.0.0-rc3-003121", + "Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final", + "Microsoft.Extensions.CommandLineUtils": "1.0.0", + "Microsoft.NETCore.App": "1.0.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" + }, + "compile": { + "lib/netcoreapp1.0/dotnet-ef.dll": {} + }, + "runtime": { + "lib/netcoreapp1.0/dotnet-ef.dll": {} + } + } + } + }, + "projectFileToolGroups": { + ".NETCoreApp,Version=v1.0": [ + "Microsoft.EntityFrameworkCore.Tools >= 1.0.0-preview2-final" + ] + } } \ No newline at end of file