public async Task InitializeAsync()
        {
            var db = _db.Database;
            //if (await db.EnsureDeletedAsync())
            //{
            //    //База данных существовала и была успешно удалена
            //}

            //await db.EnsureCreatedAsync();
            await db.MigrateAsync(); // Автоматическое создание и миграция базы до последней версии

            await IdentityInitializeAsync();

            if (await _db.Products.AnyAsync())
            {
                return;
            }

            using (var transaction = await db.BeginTransactionAsync())
            {
                await _db.Sections.AddRangeAsync(TestData.Sections);

                await db.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Sections] ON");

                await _db.SaveChangesAsync();

                await db.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Sections] OFF");

                transaction.Commit();
            }

            using (var transaction = await db.BeginTransactionAsync())
            {
                await _db.Brands.AddRangeAsync(TestData.Brands);

                await db.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Brands] ON");

                await _db.SaveChangesAsync();

                await db.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Brands] OFF");

                transaction.Commit();
            }

            using (var transaction = await db.BeginTransactionAsync())
            {
                await _db.Products.AddRangeAsync(TestData.Products);

                await db.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Products] ON");

                await _db.SaveChangesAsync();

                await db.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Products] OFF");

                transaction.Commit();
            }
        }
        public async Task InitializeAsync()
        {
            await _db.Database.MigrateAsync();

            //Инициализация пользователей
            await InitializeIdentityAsync();

            //Если база данных не пустая значит считаем ее инициализированной и выходим
            if (await _db.Products.AnyAsync())
            {
                return;
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                await _db.Sections.AddRangeAsync(TestData.Sections);

                //Допускаем вставку идентификаторов столбца в таблицу, затем отключаем этот параметр
                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Sections] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Sections] OFF");

                transaction.Commit();
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                await _db.Brands.AddRangeAsync(TestData.Brands);

                //Допускаем вставку идентификаторов столбца в таблицу, затем отключаем этот параметр
                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Brands] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Brands] OFF");

                transaction.Commit();
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                await _db.Products.AddRangeAsync(TestData.Products);

                //Допускаем вставку идентификаторов столбца в таблицу, затем отключаем этот параметр
                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Products] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Products] OFF");

                transaction.Commit();
            }
        }
        public async Task InitializeAsync()
        {
            //_db.Database.EnsureCreated();
            await _db.Database.MigrateAsync();

            await InitializeIdentityAsync();

            if (await _db.Products.AnyAsync())
            {
                return;
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                await _db.Sections.AddRangeAsync(TestData.Sections);

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Sections] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Sections] OFF");

                transaction.Commit();
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                await _db.Brands.AddRangeAsync(TestData.Brands);

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Brands] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Brands] OFF");

                transaction.Commit();
            }

            using (var transaction = _db.Database.BeginTransaction())
            {
                await _db.Products.AddRangeAsync(TestData.Products);

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Products] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Products] OFF");

                transaction.Commit();
            }
        }
Пример #4
0
        public async Task InitializeAsync()
        {
            await _db.Database.MigrateAsync();

            await InitRoleAsync();

            if (await _db.Microcontrollers.AnyAsync())
            {
                return;
            }

            using (var transaction = await _db.Database.BeginTransactionAsync())
            {
                await _db.Categories.AddRangeAsync(TestData.Categories);

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Categories] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Categories] OFF");

                transaction.Commit();
            }

            using (var transaction = await _db.Database.BeginTransactionAsync())
            {
                await _db.Microcontrollers.AddRangeAsync(TestData.Microcontrollers);

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Microcontrollers] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[Microcontrollers] OFF");

                transaction.Commit();
            }


            using (var transaction = await _db.Database.BeginTransactionAsync())
            {
                await _db.MCDescriptions.AddRangeAsync(TestData.MCDescriptions);

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[MCDescriptions] ON");

                await _db.SaveChangesAsync();

                await _db.Database.ExecuteSqlCommandAsync("SET IDENTITY_INSERT [dbo].[MCDescriptions] OFF");

                transaction.Commit();
            }
        }
Пример #5
0
        private async Task InitializeProductsAsync()
        {
            if (await _db.Products.AnyAsync())
            {
                return;
            }

            var db = _db.Database;
            await db.MigrateAsync().ConfigureAwait(false);

            using (var transaction = await db.BeginTransactionAsync().ConfigureAwait(false))
            {
                await _db.Sections.AddRangeAsync(TestData.Sections).ConfigureAwait(false);

                await db.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[Sections] ON");

                await _db.SaveChangesAsync().ConfigureAwait(false);

                await db.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[Sections] OFF");

                await transaction.CommitAsync().ConfigureAwait(false);
            }

            using (var transaction = await db.BeginTransactionAsync().ConfigureAwait(false))
            {
                await _db.Brands.AddRangeAsync(TestData.Brands).ConfigureAwait(false);

                await db.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[Brands] ON");

                await _db.SaveChangesAsync().ConfigureAwait(false);

                await db.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[Brands] OFF");

                await transaction.CommitAsync().ConfigureAwait(false);
            }

            using (var transaction = await db.BeginTransactionAsync().ConfigureAwait(false))
            {
                await _db.Products.AddRangeAsync(TestData.Products).ConfigureAwait(false);

                await db.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[Products] ON");

                await _db.SaveChangesAsync().ConfigureAwait(false);

                await db.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[Products] OFF");

                await transaction.CommitAsync().ConfigureAwait(false);
            }
        }