123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using Microsoft.IdentityModel.Tokens;
- using Microsoft.OpenApi.Models;
- using Quartz;
- using Quartz.Impl;
- using Swashbuckle.AspNetCore.Filters;
- using System;
- using System.IO;
- using System.Text;
- using Microsoft.EntityFrameworkCore;
- using IMCS.CCS.Repository;
- using IMCS.CCS.Service;
- using IMCS.CCS.Service.Impl;
- using IMCS.CCS.Services;
- using IMCS.CCS.Filter;
- using IMCS.CCS.Config;
- using IMCS.CCS.Service.Jobs;
- using IMCS.CCS.Common.Redis;
- namespace IMCS.CCS
- {
- public class Startup
- {
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- }
- public IConfiguration Configuration { get; }
- // This method gets called by the runtime. Use this method to add services to the container.
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddControllers(options =>
- {
- options.Filters.Add<ApiExceptionFilter>();
- })
- ;
- services.AddSwaggerGen(c =>
- {
- c.SwaggerDoc("v1", new OpenApiInfo { Title = "IMCS.CCS", Version = "v1" });
- //为 Swagger JSON and UI设置xml文档注释路径
- var xmlPath = Path.Combine(AppContext.BaseDirectory, "IMCS.CCS.xml");
- c.IncludeXmlComments(xmlPath, true);
-
- });
- //使用mysql
- services.AddDbContext<CcsContext>(options => options.UseMySQL(Configuration.GetConnectionString("mysqlContext"))
- .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking));
- services.AddCors(options =>
- {
- options.AddPolicy("HZYCors", builder =>
- {
- builder.WithOrigins("*")
- .AllowAnyMethod()
- .AllowAnyHeader();
- //.AllowAnyOrigin()
- //.AllowCredentials();
- //6877
- });
- });
-
-
- #region 实例注册
- //AutoMapper 配置
- services.AddAutoMapper(typeof(AutoMapperConfig));
- //文件数据服务
- services.AddTransient<IDataService, DataService>();
- //项目服务
- services.AddTransient<IProjectService, ProjectService>();
- //任务服务
- services.AddTransient<ITaskService, TaskService>();
- //定时任务 服务
- services.AddTransient<IQuartzJobService, QuartzJobService>();
- //注册ISchedulerFactory的实例。
- services.AddTransient<ISchedulerFactory, StdSchedulerFactory>();
- //web api 请求服务
- services.AddTransient<IApiRequestService, ApiRequestService>();
- //Job 实例化工厂
- services.AddSingleton<ResultfulApiJobFactory>();
- //Reultful 风格 api 请求 任务
- services.AddTransient<ResultfulApiJob>();
- //任务日志
- services.AddSingleton<IJobLoggerService, JobLoggerService>();
- //项目配置信息
- services.AddSingleton<IDataStorageConfigurationService, DataStorageConfigurationService>();
- //redis 注册
- RepositoryRedisModule.RegisterRedisRepository(services, Configuration["RedisConnectionString"]);
- //services.AddScoped<IRedisService, RedisService>();
- services.AddTransient<IUserService, UserService>();
- services.AddTransient<IUserRepository, UserRepository>();
- services.AddScoped<IDeviceService, DeviceService>();
- services.AddScoped<IHttpRequestService, HttpRequestService>();
- services.AddScoped<IEquipmentMonitorService, EquipmentMonitorService>();
- services.AddScoped<ITaskCallbackService, TaskCallbackService>();
- services.AddScoped<IDictionaryService, DictionaryService>();
- services.AddScoped<ICcsActionService, CcsActionService>();
- services.AddScoped<ICcsTagValueService, CcsTagValueService>();
- services.AddScoped<ITaskJobService, TaskJobService>();
- services.AddScoped<ICcsActionAddressService, CcsActionAddressService>();
- services.AddScoped<IDeviceRepository, DeviceRepository>();
- services.AddScoped<IEquipmentMonitorRepository, EquipmentMonitorRepository>();
- services.AddScoped<ITaskCallbackRepository, TaskCallbackRepository>();
- services.AddScoped<IDictionaryRepository, DictionaryRepository>();
- services.AddScoped<ICcsActionRepository, CcsActionRepository>();
- services.AddScoped<ICcsTagValueRepository, CcsTagValueRepository>();
- services.AddScoped<ICcsActionAddressRepository, CcsActionAddressRepository>();
- #endregion
- }
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- app.UseSwagger();
- app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "IMCS.CCS v1"));
- }
- app.UseCors("HZYCors");
- app.UseHttpsRedirection();
- app.UseStaticFiles();
- app.UseRouting();
- //app.UseAuthorization();
-
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllers();
- });
- }
- }
- }
|