public MachineResource AddOrUpdateTenants(params TenantResource[] tenants) { foreach (var tenant in tenants) { TenantIds.Add(tenant.Id); } return(this); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { // Parametrize // Filters defined in OnModelCreating modelBuilder.Entity <FieldFilter>().HasQueryFilter(e => e.IsEnabled == Field); modelBuilder.Entity <PropertyFilter>().HasQueryFilter(e => e.IsEnabled == Property); modelBuilder.Entity <MethodCallFilter>().HasQueryFilter(e => e.Tenant == GetId()); modelBuilder.Entity <ListFilter>().HasQueryFilter(e => TenantIds.Contains(e.Tenant)); modelBuilder.Entity <PropertyChainFilter>().HasQueryFilter(e => e.IsEnabled == IndirectionFlag.Enabled); modelBuilder.Entity <PropertyMethodCallFilter>().HasQueryFilter(e => e.Tenant == IndirectionFlag.GetId()); modelBuilder.Entity <MethodCallChainFilter>().HasQueryFilter(e => e.Tenant == GetFlag().GetId()); modelBuilder.Entity <ComplexFilter>().HasQueryFilter(x => x.IsEnabled == Property && (Tenant + GetId() > 0)); modelBuilder.Entity <ShortCircuitFilter>() .HasQueryFilter(x => !x.IsDeleted && (IsModerated == null || IsModerated == x.IsModerated)); modelBuilder.Entity <PrincipalSetFilter>() .HasQueryFilter(p => Dependents.Any(d => d.PrincipalSetFilterId == p.Id)); // Filters defined through EntityTypeConfiguration modelBuilder.ApplyConfiguration(new FieldConfiguration(this)); modelBuilder.ApplyConfiguration(new PropertyConfiguration(this)); modelBuilder.ApplyConfiguration(new MethodCallConfiguration(new DbContextWrapper(this))); modelBuilder.ApplyConfiguration(new PropertyChainConfiguration(new DbContextWrapper(this))); // Filters defined through methods (local/remote/extensions) ConfigureFilter(modelBuilder.Entity <LocalMethodFilter>()); ConfigureFilterParams(modelBuilder.Entity <LocalMethodParamsFilter>(), this); Indirection.ConfigureFilter(modelBuilder.Entity <RemoteMethodParamsFilter>(), new DbContextWrapper(this)); modelBuilder.Entity <ExtensionBuilderFilter>().BuilderFilter(this); new DbContextWrapper(this).ContextFilter(modelBuilder.Entity <ExtensionContextFilter>()); SetDependentFilter(modelBuilder, this); // Inline modelBuilder.Entity <DbContextStaticMemberFilter>().HasQueryFilter(e => e.UserId != AdminId); modelBuilder.Entity <StaticMemberFilter>() .HasQueryFilter(b => b.IsEnabled == StaticMemberFilter.DefaultEnabled); var enabled = true; modelBuilder.Entity <LocalVariableFilter>().HasQueryFilter(e => e.IsEnabled == enabled); Indirection flag = null; modelBuilder.Entity <LocalVariableErrorFilter>().HasQueryFilter(e => e.IsEnabled == flag.Enabled); IncorrectFilter(modelBuilder.Entity <ParameterFilter>(), Tenant); // Multiple context used in filter modelBuilder.Entity <MultiContextFilter>() .HasQueryFilter(e => e.IsEnabled == Property && e.BossId == new IncorrectDbContext().BossId); }
public MachineResource ClearTenants() { TenantIds.Clear(); return(this); }
public MachineResource RemoveTenant(TenantResource tenant) { TenantIds.Remove(tenant.Id); return(this); }