Exemple #1
0
        public void LoadMigrations()
        {
            var types = Assembly
                        .GetExecutingAssembly()
                        .GetTypes()
                        .Where(x => x.GetInterfaces().FirstOrDefault(i => i == typeof(IContentMigration)) != null)
                        .OrderBy(x => x.Name)
                        .ToList();

            foreach (var type in types)
            {
                if (Migrations.GetOneAsync(x => x.Id == type.Name).Result == null)
                {
                    var migration = (IContentMigration)Activator.CreateInstance(type);
                    migration.Up(this);
                    Migrations.InsertOneAtomicallyAsync(new ContentMigration()
                    {
                        Id = type.Name
                    }).Wait();
                }
            }
        }