Пример #1
0
 public Startup(IConfiguration configuration)
 {
     Configuration = configuration;
     FastMap.InstanceProperties("FastApiGatewayDb.DataModel", "FastApiGatewayDb.Ui.dll");
     FastMap.InstanceTable("FastApiGatewayDb.DataModel", "FastApiGatewayDb.Ui.dll");
     FastMap.InstanceMap();
 }
Пример #2
0
        public void ConfigureServices(IServiceCollection services)
        {
            //注册gbk
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            Encoding encoding = Encoding.GetEncoding("GB2312");

            //http请求
            using (var db = new DataContext("ApiGateway"))
            {
                var list = FastRead.Query <ApiGatewayDownParam>(a => a.Protocol != "",
                                                                a => new { a.Key, a.Url }).ToList <ApiGatewayDownParam>(db);
                foreach (var item in list)
                {
                    services.AddHttpClient(item.Key, client =>
                    {
                        client.BaseAddress = new Uri(item.Url);
                    }).ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
                    {
                        ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true,
                        AllowAutoRedirect      = false,
                        AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip
                    });
                }
            }

            //压缩
            services.AddResponseCompression();

            //注入
            services.AddTransient <IFastApiGatewayDb, FastApiGatewayDb.FastApiGatewayDb>();

            //跨域
            services.AddCors(options =>
            {
                options.AddPolicy("any", builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); });
            });

            //oracle
            FastMap.InstanceProperties("FastApiGatewayDb.DataModel.Oracle", "FastApiGatewayDb.dll");
            FastMap.InstanceTable("FastApiGatewayDb.DataModel.Oracle", "FastApiGatewayDb.dll");

            //MySql
            //FastMap.InstanceProperties("FastApiGatewayDb.DataModel.MySql", "FastApiGatewayDb.dll");
            //FastMap.InstanceTable("FastApiGatewayDb.DataModel.MySql", "FastApiGatewayDb.dll");

            //SqlServer
            //FastMap.InstanceProperties("FastApiGatewayDb.DataModel.SqlServer", "FastApiGatewayDb.dll");
            //FastMap.InstanceTable("FastApiGatewayDb.DataModel.SqlServer", "FastApiGatewayDb.dll");
        }
Пример #3
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddTransient <IFastRepository, FastRepository>();
            services.AddSingleton <IRedisRepository, RedisRepository>();
            services.AddResponseCompression();
            services.AddRazorPages();
            services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));

            ServiceContext.Init(new ServiceEngine(services.BuildServiceProvider()));
            FastMap.InstanceMap();
            FastMap.InstanceTable("FastEtlWeb.DataModel", "FastEtlWeb.dll");

            services.AddMvc(options =>
            {
                options.Filters.Add(new CheckFilter());
            }).SetCompatibilityVersion(CompatibilityVersion.Version_3_0).AddRazorPagesOptions(o =>
            {
                o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
                o.RootDirectory = "/Pages";
                o.Conventions.AddPageRoute("/Data", "");
            });
        }
Пример #4
0
 public static void Main(string[] args)
 {
     FastMap.InstanceTable("FastEtlWeb.DataModel", "FastEtlService.core.dll");
     CreateHostBuilder(args).Build().Run();
 }
        public static IServiceCollection AddFastData(this IServiceCollection serviceCollection, Action <ConfigData> action)
        {
            config = new ConfigData();
            action(config);

            if (!config.IsResource && DataConfig.Get(config.dbKey, null, config.dbFile).CacheType == CacheType.Redis && ServiceContext.Engine.Resolve <IRedisRepository>() == null)
            {
                throw new System.Exception("ConfigureServices First add services.AddFastRedis(); Second add services.AddFastData()");
            }

            if (DataConfig.Get(config.dbKey, Assembly.GetCallingAssembly().GetName().Name, config.dbFile).CacheType == CacheType.Redis && ServiceContext.Engine.Resolve <IRedisRepository>() == null)
            {
                throw new System.Exception("ConfigureServices First add services.AddFastRedis(); Second add services.AddFastData()");
            }

            serviceCollection.AddSingleton <IFastRepository, FastRepository>();

            Assembly.GetCallingAssembly().GetReferencedAssemblies().ToList().ForEach(a =>
            {
                if (!AppDomain.CurrentDomain.GetAssemblies().ToList().Exists(b => b.GetName().Name == a.Name))
                {
                    try { Assembly.Load(a.Name); } catch (Exception ex) { }
                }
            });

            if (config.aop != null)
            {
                serviceCollection.AddSingleton <IFastAop>(config.aop);
            }

            if (!string.IsNullOrEmpty(config.NamespaceService))
            {
                FastMap.InstanceService(serviceCollection, config.NamespaceService);
            }

            ServiceContext.Init(new ServiceEngine(serviceCollection.BuildServiceProvider()));

            var projectName = Assembly.GetCallingAssembly().GetName().Name;

            if (config.IsResource)
            {
                FastMap.InstanceMapResource(config.dbKey, config.dbFile, config.mapFile, projectName);
            }
            else
            {
                FastMap.InstanceMap(config.dbKey, config.dbFile, config.mapFile);
            }

            if (config.IsCodeFirst && !string.IsNullOrEmpty(config.NamespaceCodeFirst) && config.IsResource)
            {
                FastMap.InstanceProperties(config.NamespaceCodeFirst, config.dbFile, projectName);
                FastMap.InstanceTable(config.NamespaceCodeFirst, config.dbKey, config.dbFile, projectName);
            }

            if (config.IsCodeFirst && !string.IsNullOrEmpty(config.NamespaceCodeFirst) && !config.IsResource)
            {
                FastMap.InstanceProperties(config.NamespaceCodeFirst, config.dbFile);
                FastMap.InstanceTable(config.NamespaceCodeFirst, config.dbKey, config.dbFile);
            }

            if (!string.IsNullOrEmpty(config.NamespaceProperties) && config.IsResource)
            {
                FastMap.InstanceProperties(config.NamespaceProperties, config.dbFile, projectName);
            }

            if (!string.IsNullOrEmpty(config.NamespaceProperties) && !config.IsResource)
            {
                FastMap.InstanceProperties(config.NamespaceProperties, config.dbFile);
            }

            return(serviceCollection);
        }