Пример #1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                              DataContext context, UserManager <User> userManager)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseDatabaseErrorPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            app.UseMiddleware <ApiDiagnosticsMiddleware>();
            app.UseCors();
            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseAuthentication();

            ModelBuilderExtensions.Seed(context, userManager);

            app.UseMvc();
        }
Пример #2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, UserManager <ApplicationUser> userManager)

        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            ModelBuilderExtensions.SeedUsers(userManager);
            app.UseCors(c => c.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin());
            app.UseHttpsRedirection();
            app.UseAuthentication();
            app.UseMvc(routes =>
            {
                routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
            });
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/V1/swagger.json", "Values V1");
            });
        }
Пример #3
0
 /// <summary>
 /// returns list of tranformers
 /// </summary>
 /// <param name="context"></param>
 /// <returns><List<Transformer></returns>
 public static Task <List <Transformer> > getTransformers(ITransformerDBContext context)
 {
     return(Task.Run(() => context
                     .TransformerAllegiances
                     .ToList <TransformerAllegiance>()
                     .Select((transformerAllegiance, index) =>
                             Enumerable
                             .Range(1, 5)
                             .Select(item =>
                                     new Transformer {
         AllegianceId = transformerAllegiance.TransformerAllegianceId
         , Name = $"{transformerAllegiance.AllegianceName} - {ModelBuilderExtensions.NumberToWords(item)}"
         , Strength = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Intelligence = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Speed = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Endurance = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Rank = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Courage = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Firepower = ModelBuilderExtensions.getRandomNumber(1, 10)
         , Skill = ModelBuilderExtensions.getRandomNumber(1, 10)
     }
                                     )
                             .ToList <Transformer>()
                             )
                     .SelectMany(items => items)
                     .ToList <Transformer>()
                     ));
 }
Пример #4
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            new GameConfig(modelBuilder.Entity <Game>());

            ///seed
            ModelBuilderExtensions.Seed(modelBuilder);
        }
Пример #5
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            ModelBuilderExtensions.PluralizingTableNameConvention(modelBuilder);

            modelBuilder.ApplyConfiguration(new MunicipalityConfiguration());
            modelBuilder.ApplyConfiguration(new MunicipalityTaxConfiguration());
        }
Пример #6
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //Seeden
            _modelBuilder = modelBuilder;
            base.OnModelCreating(_modelBuilder);

            ModelBuilderExtensions.modelBuilder = _modelBuilder;
            ModelBuilderExtensions.Seed();
        }
Пример #7
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, CardsAgainstHumanityAPIContext context)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            //2.2 Cors
            app.UseCors("MyAllowOrigins");

            //vσσr de endpoints!
            app.UseAuthentication();
            app.UseAuthorization();

            //2.3 Swagger
            app.UseSwagger(); //enable swagger
            app.UseSwaggerUI(c =>
            {
                // c.RoutePrefix = "swagger"; //path naar de UI pagina: /swagger/index.html
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "CardsAgainstHumanity_API v1");
            });

            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapHub <LobbyHub>("/lobbyhub");
                endpoints.MapHub <GameHub>("/gamehub");
            });


            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller}/{action=Index}/{id?}");
            });

            //SEEDER met controler over reeds bestaande data
            //context via property dependancy
            ModelBuilderExtensions._configuration   = Configuration;
            ModelBuilderExtensions._context         = context;
            ModelBuilderExtensions._contentRootPath = env.ContentRootPath.Replace("CardsAgainstHumanity.API", "CardsAgainstHumanity.Models");

            ModelBuilderExtensions.SeedFromFile(); //Pas hier Hostenv beschikbaar (na Context building)
        }
        public override void ConfigureServices(IServiceCollection services, IConfiguration configuration,
                                               IHostEnvironment environment)
        {
            base.ConfigureServices(services, configuration, environment);

            services.AddEntityFrameworkInMemoryDatabase();
            services.AddDbContext <TDbContext>((p, options) =>
            {
                options.ConfigureWarnings(w => w.Ignore(InMemoryEventId.TransactionIgnoredWarning))
                .UseInMemoryDatabase(Config.InMemoryDatabaseName).UseInternalServiceProvider(p);
            });
            ModelBuilderExtensions.RequireArrayConversion();
        }
Пример #9
0
        public void NullArgTests()
        {
            var services = new ServiceCollection();

            Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(null));
            Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultWebHookWorkItemProcessor(null)));
            Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultValidator(null)));
            Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultDataProtection(null, c => { })));
            Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultDataProtection(c => { }, null)));
            Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultEFWebHookWorkItemProcessor <TestContext1>(null)));

            Assert.Throws <ArgumentNullException>(() => ModelBuilderExtensions.AddWebHookDefaultMapping(null));
            Assert.Throws <ArgumentNullException>(() => ModelBuilderExtensions.AddWebHookFilterDefaultMapping(null));
        }
Пример #10
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataContext dataContext)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                ModelBuilderExtensions.Seed(dataContext);
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
Пример #11
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            Type[]             types           = typeof(EntityTypeConfiguration <>).GetTypeInfo().Assembly.GetTypes();
            IEnumerable <Type> typesToRegister = types
                                                 .Where(type => !string.IsNullOrEmpty(type.Namespace) &&
                                                        type.GetTypeInfo().BaseType != null &&
                                                        type.GetTypeInfo().BaseType.GetTypeInfo().IsGenericType&&
                                                        type.GetTypeInfo().BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration <>));

            foreach (var type in typesToRegister)
            {
                dynamic configurationInstance = Activator.CreateInstance(type);
                ModelBuilderExtensions.AddConfiguration(modelBuilder, configurationInstance);
            }

            base.OnModelCreating(modelBuilder);
        }
 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
     base.OnModelCreating(modelBuilder);
     modelBuilder.Entity <IdentityUser>().ToTable("IdentityUsers");
     modelBuilder.Entity <Korpa>().ToTable("Korpa");
     modelBuilder.Entity <KorpaInfo>().ToTable("KorpaInfo");
     modelBuilder.Entity <Narudzba>().ToTable("Narudzba");
     modelBuilder.Entity <Obavijest>().ToTable("Obavijest");
     modelBuilder.Entity <ChatObavijest>().ToTable("ChatObavijest");
     modelBuilder.Entity <NarudzbeObavijest>().ToTable("NarudzbeObavijest");
     modelBuilder.Entity <Recenzija>().ToTable("Recenzija");
     modelBuilder.Ignore <StanjeNarudzbe>();
     modelBuilder.Entity <Tip>().ToTable("Tip");
     modelBuilder.Ignore <Tipovi>();
     //Database.ExecuteSqlCommand("SET IDENTITY_INSERT Artikal ON");
     modelBuilder.Entity <Artikal>().ToTable("Artikal");
     ModelBuilderExtensions.PopuniBazu(modelBuilder);
 }
Пример #13
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            _modelBuilder = modelBuilder;
            base.OnModelCreating(_modelBuilder);


            //modelBuilder.Entity<MovieRoom>().HasKey(mr => new { mr.MovieID, mr.RoomID});


            //default veel op veel is cascade delete!
            foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
            {
                relationship.DeleteBehavior = DeleteBehavior.Restrict;
            }

            ModelBuilderExtensions.modelBuilder = _modelBuilder;

            ModelBuilderExtensions.Seed();
        }
Пример #14
0
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity <Invoice>()
        .HasMany(p => p.InvoiceDetails)
        .WithOne(d => d.Invoice).OnDelete(DeleteBehavior.Restrict);
        modelBuilder.Entity <Language>().HasIndex(x => x.Code).IsUnique();
        modelBuilder.Entity <Language>().HasKey(x => x.Code).HasName("Code");
        modelBuilder.Entity <Product>()
        .HasMany(p => p.Taxes)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Product>()
        .HasMany(p => p.ProductUnits)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Product>()
        .HasMany(p => p.BaseCompositeProducts)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <User>().Property(x => x.UserId).HasDefaultValueSql("NEWID()");

        modelBuilder.Entity <LanguageKey>().HasKey(o => new { o.LanguageCode, o.Key });


        foreach (var property in modelBuilder.Model.GetEntityTypes()
                 .SelectMany(t => t.GetProperties())
                 .Where(p => p.ClrType == typeof(decimal)))
        {
            property.SetColumnType("decimal(18, 2)");
        }

        var cascadeFKs = modelBuilder.Model.GetEntityTypes().SelectMany(t => t.GetForeignKeys())
                         .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade);

        foreach (var fk in cascadeFKs)
        {
            fk.DeleteBehavior = DeleteBehavior.Restrict;
        }
        ModelBuilderExtensions.Seed(modelBuilder);
        base.OnModelCreating(modelBuilder);
    }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //3. Set Cascade as a default delete behaviour
            modelBuilder.OverrideDeleteBehavior(DeleteBehavior.Cascade);

            modelBuilder.SetGlobalMaxLength(200);
            modelBuilder.SetGlobalTablePrefix("tbl_");

            Assembly assemblyWithConfig = Assembly.GetExecutingAssembly();
            Assembly assemblyWithConfig2 = typeof(ApplicationDbContext).Assembly;
            Assembly assemblyWithConfigurations = GetType().Assembly;
            modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfigurations);
            modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig2);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfigurations);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly2(assemblyWithConfigurations);
            modelBuilder.ApplyAllConfigurationsFromAssembly(assemblyWithConfigurations);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfig);
            modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig);

            // ApplyConfiguration calls must follow base.OnModelCreating()
            //modelBuilder.ApplyAllConfigurationsFromCurrentAssembly3();
            // Apply configurations in a different assembly - just reference a type in that assembly
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly3(assemblyWithConfig2);


            // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            modelBuilder.EntityTypes()
                        .Configure(et => et.Relational().TableName = et.DisplayName());

            // Put the table name on the primary key
            modelBuilder.Properties()
                        .Where(x => x.Name == "Id")
                        .Configure(p => p.Relational().ColumnName = p.DeclaringEntityType.Name + "Id");

            // Mark timestamp columns as concurrency tokens
            modelBuilder.Properties()
                        .Where(x => x.Name == "Timestamp")
                        .Configure(p => p.IsConcurrencyToken = true);

            // equivalent of modelBuilder.Conventions.AddFromAssembly(Assembly.GetExecutingAssembly());
            // look at this answer: https://stackoverflow.com/a/43075152/3419825

            // for the other conventions, we do a metadata model loop
            foreach (var entityType in modelBuilder.Model.GetEntityTypes())
            {
                // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
                entityType.Relational().TableName = entityType.DisplayName();

                // equivalent of modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
                // and modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
                entityType.GetForeignKeys()
                    .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade)
                    .ToList()
                    .ForEach(fk => fk.DeleteBehavior = DeleteBehavior.Restrict);
            }


            Type[] types = typeof(EntityTypeConfiguration<>).GetTypeInfo().Assembly.GetTypes();
            IEnumerable<Type> typesToRegister = types
                .Where(type => !string.IsNullOrEmpty(type.Namespace) &&
                                type.GetTypeInfo().BaseType != null &&
                                type.GetTypeInfo().BaseType.GetTypeInfo().IsGenericType &&
                                type.GetTypeInfo().BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration<>));

            foreach (var type in typesToRegister)
            {
                dynamic configurationInstance = Activator.CreateInstance(type);
                ModelBuilderExtensions.AddConfiguration(modelBuilder, configurationInstance);
            }



            foreach (var entity in modelBuilder.Model.GetEntityTypes())
            {
                modelBuilder.Entity(entity.Name).ToTable(entity.Name + "s");
            }


            var entityTypes = myDomainAssembly.DefinedTypes
                 .Where(ti => ti.IsClass && ti.IsPublic && !ti.IsAbstract && !ti.IsNested)

            foreach (var entityType in entityTypes)
            {
                modelBuilder.Entity(entityType).ToTable(entity.Name + "s");
            }


            //For EF Core 3.0, use this to set the TableName property(because entity.Relational() no longer exist):

            foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
            {
                entity.SetTableName(entity.DisplayName());
            }

            modelBuilder.RemovePluralizingTableNameConvention();


            var people = this.DbSet<Person>().ToList();

            var s1 = "Accessories".Singularize(); //produces "Accessory"
            var s2 = "XMLDetails".Singularize(); //produces "XMLDetail"
        }
Пример #16
0
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity <Invoice>()
        .HasMany(p => p.InvoiceLeads)
        .WithOne(d => d.Invoice).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <InvoiceLead>()
        .HasMany(p => p.LeadDetails)
        .WithOne(d => d.Lead).OnDelete(DeleteBehavior.NoAction);

        modelBuilder.Entity <Invoice>()
        .HasMany(p => p.InvoiceDetails)
        .WithOne(d => d.Invoice).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <InvoiceDetail>()
        .HasOne(p => p.Invoice)
        .WithMany(d => d.InvoiceDetails).OnDelete(DeleteBehavior.NoAction);

        modelBuilder.Entity <Section>()
        .HasMany(p => p.Operations)
        .WithOne(d => d.Section).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Role>()
        .HasMany(p => p.SectionOperations)
        .WithOne(d => d.Role).OnDelete(DeleteBehavior.Restrict);


        modelBuilder.Entity <Language>().HasIndex(x => x.Code).IsUnique();
        modelBuilder.Entity <Language>().HasKey(x => x.Code).HasName("Code");
        modelBuilder.Entity <Product>()
        .HasMany(p => p.Taxes)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <BranchOffice>()
        .HasMany(x => x.Warehouses)
        .WithOne(x => x.BranchOffice)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <CashRegisterOpening>()
        .HasMany(x => x.Details)
        .WithOne(x => x.CashRegisterOpening)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <CashRegisterOpeningDetail>()
        .HasOne(x => x.CashRegisterOpening)
        .WithMany(x => x.Details)
        .OnDelete(DeleteBehavior.NoAction);

        modelBuilder.Entity <BranchOffice>()
        .HasMany(x => x.CashRegisters)
        .WithOne(x => x.BranchOffice)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <BranchOffice>()
        .HasMany(x => x.Users)
        .WithOne(x => x.BranchOffice)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <PaymentType>()
        .HasMany(x => x.ExpensesPayments)
        .WithOne(x => x.PaymentType)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <PaymentType>()
        .HasMany(x => x.Expenses)
        .WithOne(x => x.PaymentType)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <PaymentType>()
        .HasMany(x => x.InvoicesPayments)
        .WithOne(x => x.PaymentType)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <User>()
        .HasMany(x => x.CashRegisterOpeningClosings)
        .WithOne(x => x.User)
        .OnDelete(DeleteBehavior.Restrict);


        modelBuilder.Entity <CompositeProduct>()
        .HasOne(x => x.UnitProductEquivalence)
        .WithMany(y => y.CompositeProducts)
        .OnDelete(DeleteBehavior.SetNull);

        modelBuilder.Entity <Expense>()
        .HasOne(x => x.PaymentType)
        .WithMany(y => y.Expenses)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <ExpensesPayment>()
        .HasOne(x => x.PaymentType)
        .WithMany(y => y.ExpensesPayments)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Payment>()
        .HasOne(x => x.PaymentType)
        .WithMany(y => y.InvoicesPayments)
        .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Warehouse>()
        .HasOne(x => x.BranchOffice)
        .WithMany(x => x.Warehouses);

        modelBuilder.Entity <SectionOperation>()
        .HasOne(x => x.Section)
        .WithMany(x => x.Operations)
        .OnDelete(DeleteBehavior.NoAction);

        modelBuilder.Entity <SectionOperation>()
        .HasOne(x => x.Operation)
        .WithMany(x => x.Sections)
        .OnDelete(DeleteBehavior.NoAction);

        modelBuilder.Entity <Product>()
        .HasMany(p => p.ProductUnits)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Product>()
        .HasMany(p => p.BaseCompositeProducts)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Product>()
        .HasMany(p => p.Taxes)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Product>()
        .HasMany(p => p.SuppliersCosts)
        .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <Supplier>()
        .HasMany(p => p.ProductsCosts)
        .WithOne(d => d.Supplier).OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity <User>().Property(x => x.UserId).HasDefaultValueSql("NEWID()");

        modelBuilder.Entity <LanguageKey>().HasKey(o => new { o.LanguageCode, o.Key });
        modelBuilder.Entity <Section>().HasMany(x => x.Operations).WithOne(x => x.Section).OnDelete(DeleteBehavior.Restrict);
        modelBuilder.Entity <Operation>().HasMany(x => x.Sections).WithOne(x => x.Operation).OnDelete(DeleteBehavior.Restrict);
        modelBuilder.Entity <SectionOperation>().HasOne(y => y.Operation).WithMany(y => y.Sections).OnDelete(DeleteBehavior.Cascade);
        modelBuilder.Entity <SectionOperation>().HasOne(y => y.Section).WithMany(x => x.Operations).OnDelete(DeleteBehavior.Cascade);


        foreach (var property in modelBuilder.Model.GetEntityTypes()
                 .SelectMany(t => t.GetProperties())
                 .Where(p => p.ClrType == typeof(decimal)))
        {
            property.SetColumnType("decimal(18, 2)");
        }

        var cascadeFKs = modelBuilder.Model.GetEntityTypes().SelectMany(t => t.GetForeignKeys())
                         .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade);

        foreach (var fk in cascadeFKs)
        {
            fk.DeleteBehavior = DeleteBehavior.Restrict;
        }
        ModelBuilderExtensions.Seed(modelBuilder);
        base.OnModelCreating(modelBuilder);
    }
Пример #17
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            ModelBuilderExtensions.PluralizingTableNameConvention(modelBuilder);

            #region EF Core Identity
            modelBuilder.Entity <IdentityUserClaim <int> >(entity =>
            {
                entity.ToTable("UserRoles");
            });

            modelBuilder.Entity <IdentityUserClaim <int> >(entity =>
            {
                entity.ToTable("UserClaims");
            });

            modelBuilder.Entity <IdentityUserLogin <int> >(entity =>
            {
                entity.ToTable("UserLogins");
            });

            modelBuilder.Entity <IdentityRoleClaim <int> >(entity =>
            {
                entity.ToTable("RoleClaims");
            });

            modelBuilder.Entity <IdentityUserToken <int> >(entity =>
            {
                entity.ToTable("UserTokens");

                entity.Property(o => o.LoginProvider).HasMaxLength(64);
                entity.Property(o => o.Name).HasMaxLength(255);
            });

            modelBuilder.Entity <User>(entity =>
            {
                entity.Property(r => r.NormalizedUserName).HasMaxLength(255);
            });

            modelBuilder.Entity <IdentityUserRole <int> >(entity =>
            {
                entity.ToTable("UserRoles");
            });

            modelBuilder.Entity <Domain.Identities.IdentityRole>(entity =>
            {
                entity.Property(r => r.NormalizedName).HasMaxLength(255);
            });

            modelBuilder.Entity <User>(entity =>
            {
                entity.Property(r => r.NormalizedUserName).HasMaxLength(255);
            });

            modelBuilder.Entity <IdentityUserLogin <int> >(entity =>
            {
                entity.Property(r => r.LoginProvider).HasMaxLength(64);
                entity.Property(r => r.ProviderKey).HasMaxLength(64);
            });
            #endregion

            modelBuilder.ApplyConfiguration(new AngularComponentConfiguration());
            modelBuilder.ApplyConfiguration(new BasketConfiguration());
            modelBuilder.ApplyConfiguration(new BasketItemConfiguration());
            modelBuilder.ApplyConfiguration(new CategoryCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new CategoryCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new CategoryConfiguration());
            modelBuilder.ApplyConfiguration(new CategoryTypeConfiguration());
            modelBuilder.ApplyConfiguration(new CharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new ImageCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new ImageCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new ImageConfiguration());
            modelBuilder.ApplyConfiguration(new ImageSizeTypeConfiguration());
            modelBuilder.ApplyConfiguration(new InputFieldCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new InputFieldCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new InputFieldConfiguration());
            modelBuilder.ApplyConfiguration(new InputFieldsetCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new InputFieldsetCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new InputFieldsetConfiguration());
            modelBuilder.ApplyConfiguration(new InputFormConfiguration());
            modelBuilder.ApplyConfiguration(new InputFormOptionConfiguration());
            modelBuilder.ApplyConfiguration(new LanguageConfiguration());
            modelBuilder.ApplyConfiguration(new LocaleLanguageResourceConfiguration());
            modelBuilder.ApplyConfiguration(new OrderCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new OrderCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new OrderConfiguration());
            modelBuilder.ApplyConfiguration(new OrderStatusConfiguration());
            modelBuilder.ApplyConfiguration(new PaymentMethodConfiguration());
            modelBuilder.ApplyConfiguration(new PaymentMethodTypeConfiguration());
            modelBuilder.ApplyConfiguration(new PhraseConfiguration());
            modelBuilder.ApplyConfiguration(new ProductCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new ProductCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new ProductConfiguration());
            modelBuilder.ApplyConfiguration(new ProductDetailCharacteristicConfiguration());
            modelBuilder.ApplyConfiguration(new ProductDetailCharacteristicTranslationConfiguration());
            modelBuilder.ApplyConfiguration(new ProductDetailConfiguration());
            modelBuilder.ApplyConfiguration(new ProductDetailTypeConfiguration());
            modelBuilder.ApplyConfiguration(new ProductRatingConfiguration());
            modelBuilder.ApplyConfiguration(new ProductReviewConfiguration());
            modelBuilder.ApplyConfiguration(new ProductSpecificationAttributeConfiguration());
            modelBuilder.ApplyConfiguration(new ProductSpecificationAttributeOptionConfiguration());
            modelBuilder.ApplyConfiguration(new RouteConfiguration());
            modelBuilder.ApplyConfiguration(new ShippingMethodConfiguration());
            modelBuilder.ApplyConfiguration(new SystemSettingConfiguration());
            modelBuilder.ApplyConfiguration(new UserConfiguration());
            modelBuilder.ApplyConfiguration(new VoucherConfiguration());
        }
 public Task <string> WebsiteDetailsList() => JsonSerialize(ModelBuilderExtensions.getWebsiteDetails(_context));
Пример #19
0
 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
     base.OnModelCreating(modelBuilder);
     ModelBuilderExtensions.AddContentSearchIndex(modelBuilder);
 }
 private ContentBlock CreateBlock(string type)
 {
     return(ModelBuilderExtensions.CreateBlock(type));
 }
Пример #21
0
        private void AssertTableName(string name, string expected, string[] ignoredNamespaces)
        {
            var result = ModelBuilderExtensions.GetTableNameWithNamespace(name, ignoredNamespaces);

            Assert.AreEqual(expected, result);
        }
Пример #22
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
            {
                if (entity.Name.Contains("AspNet"))
                {
                    string tableSchema = entity.GetSchema();
                    entity.SetSchema(tableSchema + "_SinjulMSBH");

                    string tableName = entity.GetTableName().Replace("AspNet", "SinjulMSBH_");
                    entity.SetTableName(tableName);
                }
            }

            //if (entity.Name == "Simple.Models.Entities.Entity01")
            //{
            //    entity.SetDbSetName("Entity01");
            //    var a6 = entity.GetTableName();
            //    entity.SetTableName(a6 + "s");
            //    var a4 = entity.FindProperty("Entity1");
            //    entity.SetPrimaryKey(a4);
            //    //var a1 = entity.AddProperty("Test");
            //    var a2 = entity.FindPrimaryKey();
            //    var a3 = entity.FindProperties(new string[] { "Test,IsDeleted,InsertDate,Entity02Id" });
            //    var a44 = entity.FindProperty("InsertDate");
            //    var a7 = entity.GetType();
            //    var a8 = entity.PropertyCount();
            //    var a9 = entity.RelationshipPropertyCount();
            //    entity.SetAnnotation("DisplayName", "TestAlaki");
            //    var a5 = entity.GetAnnotation("DisplayName");
            //    //entity.SetQueryFilter(c => c.Name == "EntityTwo");
            //    //entity.Relational().TableName = entity.Relational().TableName.Replace("AspNet", "");
            //}
            //}


            //3. Set Cascade as a default delete behaviour
            modelBuilder.OverrideDeleteBehavior(DeleteBehavior.Cascade);

            modelBuilder.SetGlobalMaxLength(200);
            modelBuilder.SetGlobalTablePrefix("tbl_");

            Assembly assemblyWithConfig         = Assembly.GetExecutingAssembly();
            Assembly assemblyWithConfig2        = typeof(ApplicationDbContext).Assembly;
            Assembly assemblyWithConfigurations = GetType().Assembly;

            modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfigurations);
            modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig2);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfigurations);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly2(assemblyWithConfigurations);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly3(assemblyWithConfig2);
            modelBuilder.ApplyAllConfigurationsFromAssembly(assemblyWithConfigurations);
            modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfig);
            modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig);


            // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            //modelBuilder.EntityTypes().Configure(et => et.Relational().TableName = et.DisplayName());
            modelBuilder.EntityTypes().Configure(et => et.SetTableName(et.DisplayName()));

            // Put the table name on the primary key
            //modelBuilder.Properties().Where(x => x.Name == "Id").Configure(p => p.Relational().ColumnName = p.DeclaringEntityType.Name + "Id");
            modelBuilder.Properties().Where(x => x.Name == "Id").Configure(p => p.SetColumnName(p.DeclaringEntityType.Name + "Id"));

            // Mark timestamp columns as concurrency tokens
            modelBuilder.Properties().Where(x => x.Name == "Timestamp").Configure(p => p.IsConcurrencyToken = true);

            // equivalent of modelBuilder.Conventions.AddFromAssembly(Assembly.GetExecutingAssembly());
            // look at this answer: https://stackoverflow.com/a/43075152/3419825


            //For EF Core 3.0, use this to set the TableName property(because entity.Relational() no longer exist):
            // for the other conventions, we do a metadata model loop
            foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes())
            {
                // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
                //entityType.Relational().TableName = entityType.DisplayName();
                entityType.SetTableName(entityType.DisplayName());

                // equivalent of modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
                // and modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
                entityType.GetForeignKeys()
                .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade)
                .ToList()
                .ForEach(fk => fk.DeleteBehavior = DeleteBehavior.Restrict);
            }


            Type[]             types           = typeof(EntityTypeConfiguration <>).GetTypeInfo().Assembly.GetTypes();
            IEnumerable <Type> typesToRegister = types
                                                 .Where(type => !string.IsNullOrEmpty(type.Namespace) &&
                                                        type.GetTypeInfo().BaseType != null &&
                                                        type.GetTypeInfo().BaseType.GetTypeInfo().IsGenericType&&
                                                        type.GetTypeInfo().BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration <>));

            foreach (var type in typesToRegister)
            {
                dynamic configurationInstance = Activator.CreateInstance(type);
                ModelBuilderExtensions.AddConfiguration(modelBuilder, configurationInstance);
            }

            foreach (var entity in modelBuilder.Model.GetEntityTypes())
            {
                modelBuilder.Entity(entity.Name).ToTable(entity.Name + "s");
            }

            var entityTypes = Assembly.GetExecutingAssembly().DefinedTypes
                              .Where(ti => ti.IsClass && ti.IsPublic && !ti.IsAbstract && !ti.IsNested);

            foreach (var entityType in entityTypes)
            {
                modelBuilder.Entity(entityType).ToTable(entityType.Name + "s");
            }

            modelBuilder.RemovePluralizingTableNameConvention();

            modelBuilder.Entity <Person>().Property(x => x.MyDecimal).HasColumnType("decimal(14, 2)");
            modelBuilder.DecimalPrecision();
            modelBuilder.SetSQLDefaultValues();

            modelBuilder.AddConfiguration(new BlogMap());
            modelBuilder.AddEntityConfigurationsFromAssembly(GetType().Assembly);

            modelBuilder.AddSingularizingTableName();
            modelBuilder.AddPluralizingTableName();
            modelBuilder.AddSqlDefaultValue("ProprtyName", typeof(string), "SqlDefaultValue");
            modelBuilder.AddOnDeleteBehavior();
            modelBuilder.ApplyConfigFromAssembly(assemblyWithConfig);

            var baseEntityAssembly = typeof(IBaseEntity).Assembly;

            modelBuilder.ApplyEntityFromAssembly <IBaseEntity>(baseEntityAssembly);



            var people = this.DbSet <Person>().ToList();

            var s1 = "Accessories".Singularize(); //produces "Accessory"
            var s2 = "XMLDetails".Singularize();  //produces "XMLDetail"
        }
 public Task <string> WebsiteList() => JsonSerialize(ModelBuilderExtensions.getWebsites());