public static EntityApiRoles AddEntityApi <TKey, TEntity, TDbContext>(this IPlatformModuleBuilder builder, Action <EntityApiBuildContext <TKey, TEntity> > config = null)
            where TEntity : class
            where TDbContext : DbContext
        {
            var ctx = new EntityApiBuildContext <TKey, TEntity>();

            config?.Invoke(ctx);
            return(new EntityApiRoles
            {
                Get = builder.AddGetApi <TKey, TEntity, TDbContext>(ctx.GetConfig),
                Put = builder.AddPutApi <TKey, TEntity, TDbContext>(ctx.PutConfig),
                Delete = builder.AddDeleteApi <TKey, TEntity, TDbContext>(ctx.DeleteConfig),
                Post = builder.AddPostApi <TKey, TEntity, TDbContext>(ctx.PostConfig),
                Query = builder.AddQueryApi <TEntity, TDbContext>(ctx.QueryConfig)
            });
        }
 public static IRoleToken AddPutApi <TKey, TEntity>(this IPlatformModuleBuilder builder, Action <PutApiConfigurations <TEntity> > options = null) where TEntity : class => builder.AddPutApi <TKey, TEntity, PlatformDbContext>(options);