public MemberController(IHostingEnvironment env, ReservationDbContext dbcontext, NPOLJwtTokenService tokensrv, ServiceConfig serviceConfig, SMSService smsService) { db = dbcontext; tokenservice = tokensrv; this.serviceConfig = serviceConfig; this.smsService = smsService; membersPath = Path.Combine(env.WebRootPath, "images", "members"); }
public ReservationController(ReservationDbContext dbcontext, NPOLJwtTokenService tokenservice, SMSService smsService, CultureContext cultureContext, ICaptchaProtectionProvider captchaProtectionProvider, IHumanReadableIntegerProvider humanReadableIntegerProvider) : base(cultureContext) { db = dbcontext; this.tokenservice = tokenservice; this.smsService = smsService; this.cultureContext = cultureContext; this.captchaProtectionProvider = captchaProtectionProvider; this.humanReadableIntegerProvider = humanReadableIntegerProvider; }
public void ConfigureServices(IServiceCollection services) { ServiceConfig serviceConfig = new ServiceConfig() { SecurityKey = Configuration["SecurityKey"], SessionName = Configuration["SessionName"], SMSUrl = Configuration["SMSUrl"], SMSApiKey = Configuration["SMSApiKey"], ConnectionString = Configuration.GetConnectionString("reservationData"), RegisterationTicket = ServiceConfig.ReadTicket(), NotificationPath = "notification.json", ServiceStatePath = "state.txt", ServiceReasonPath = "service_reason.json" }; services.AddSingleton <ServiceConfig>(serviceConfig); services.AddMvc(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(30); options.Cookie.Name = serviceConfig.SessionName; }); services.AddDbContext <ReservationDbContext>(options => options.UseSqlServer(serviceConfig.ConnectionString)); services.AddSingleton <NPOLJwtTokenService>(provider => { SymmetricSecurityKey key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(serviceConfig.SecurityKey)); TokenValidationParameters tokenParam = new TokenValidationParameters() { ValidateIssuerSigningKey = true, IssuerSigningKey = key, ValidateIssuer = false, ValidateAudience = false, ValidateLifetime = true, ClockSkew = TimeSpan.Zero }; TokenProviderOptions options = new TokenProviderOptions() { Audience = "MyServer", Issuer = "MyClient", SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256), Expiration = TimeSpan.FromDays(1), ValidationParameters = tokenParam }; NPOLJwtTokenService serv = new NPOLJwtTokenService(Options.Create(options)); return(serv); }); services.AddSingleton <SMSService>(); services.AddDNTCaptcha(); string defaultLanguage = Configuration["Language:Default"]; IEnumerable <string> supportedLanguages = Configuration.GetSection("Language:Supported").AsEnumerable().Where(x => x.Value != null).Select(x => x.Value); services.AddSingleton <CultureOptions>(provider => new CultureOptions(defaultLanguage, supportedLanguages)); services.AddScoped <CultureContext>(); services.AddSingleton <LocalizedViewFindExecutor>(); services.AddSingleton <INotificationProvider, NotificationProvider>(service => new NotificationProvider(serviceConfig.NotificationPath)); services.AddSingleton <IServiceState, ServiceState>(service => new ServiceState(serviceConfig.ServiceStatePath)); services.AddSingleton <IServiceNotAvailableReasonProvider, ServiceNotAvailableReasonProvider>(service => new ServiceNotAvailableReasonProvider(serviceConfig.ServiceReasonPath)); }