BotSharp/Bot.Rasa/Loader/DbInitializer.cs
2018-03-18 21:07:36 -05:00

29 lines
1 KiB
C#

using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
using EntityFrameworkCore.BootKit;
using DotNetToolkit;
namespace Bot.Rasa.Loader
{
public class DbInitializer : IInitializationLoader
{
public int Priority => 1;
public void Initialize()
{
var dc = new DefaultDataContextLoader().GetDefaultDc();
var instances = TypeHelper.GetInstanceWithInterface<IHookDbInitializer>(Database.Assemblies).OrderBy(x => x.Priority).ToList();
for (int idx = 0; idx < instances.Count; idx++)
{
DateTime start = DateTime.UtcNow;
Console.WriteLine($"{instances[idx].ToString()} P:{instances[idx].Priority} started at {DateTime.UtcNow}");
int effected = dc.DbTran(() => instances[idx].Load(Database.Configuration, dc));
Console.WriteLine($"{instances[idx].ToString()} effected [{effected}] records in {(DateTime.UtcNow - start).TotalMilliseconds} ms");
}
}
}
}