Exemplo n.º 1
0
 public PlatformServiceBusService(IServiceBusService serviceBusService, QueueNameInfo appSettingsQueueNameInfo,
                                  RequestContext requestContext)
 {
     _serviceBusService        = serviceBusService;
     _appSettingsQueueNameInfo = appSettingsQueueNameInfo;
     _requestContext           = requestContext;
 }
Exemplo n.º 2
0
 public AlertNotificationRequestService(RequestContext requestContext, QueueNameInfo queueNameInfo, IServiceBusService serviceBusService)
 {
     _requestContext    = requestContext;
     _queueNameInfo     = queueNameInfo;
     _serviceBusService = serviceBusService;
 }
Exemplo n.º 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var    dbSettingsConfigurationSection = Configuration.GetSection("DbConnection");
            DbInfo appSettingsDbInfo = new DbInfo();

            dbSettingsConfigurationSection.Bind(appSettingsDbInfo);

            var           queueConfigurationSection = Configuration.GetSection("QueueNames");
            QueueNameInfo appSettingsQueueNameInfo  = new QueueNameInfo();

            queueConfigurationSection.Bind(appSettingsQueueNameInfo);

            //Singletons
            services.AddSingleton(s => appSettingsDbInfo);
            services.AddSingleton(s => appSettingsQueueNameInfo);
            services.AddSingleton <IDocumentDbService, CosmosDbService>();
            //services.AddSingleton<ILoggerService, ILoggerService>();

            //Scoped
            services.AddScoped <RequestContext>();
            services.AddScoped <IUserContextService, WebUserContextService>();
            services.AddScoped <IGroupDataContextFactory, GroupDataContextFactory>();
            services.AddScoped <IGroupDataContext, GroupDataContext>();
            services.AddScoped <ISystemDataContext, SystemDataContext>();
            services.AddScoped <IEventsDbService, EventsDbService>();
            services.AddScoped <IConfigurationReaderService, ConfigurationReaderService>();
            services.AddScoped <ILocalisationReaderService, LocalisationReaderService>();
            services.AddScoped <ILookupReaderService, LookupReaderService>();
            services.AddScoped <ILookupService, LookupService>();
            services.AddScoped <IGroupService, GroupService>();
            services.AddScoped <IConfigurationService, ConfigurationService>();
            services.AddScoped <IPermissionService, PermissionService>();
            services.AddScoped <ILocalisationService, LocalisationService>();
            services.AddScoped <IIdentityService, IdentityService>();
            services.AddScoped <IUserService, UserService>();
            services.AddScoped <IApplicationService, ApplicationService>();
            services.AddScoped <IUserPermissionService, UserPermissionService>();
            //services.AddScoped<IUserClaimsPrincipalFactory<User>, CustomUserClaimsPrincipleFactory>();
            services.AddScoped <IUserClaimsPrincipalFactory <User>, CustomUserClaimsPrincipleFactory>();
            services.AddScoped <IPlatformServiceBusService, PlatformServiceBusService>();
            services.AddScoped <IBulkDataService, BulkDataService>();
            services.AddScoped <IGroupPermissionService, GroupPermissionService>();
            services.AddScoped <IServiceBusService, AzureServiceBusService>();
            services.AddScoped <IBlobServiceFactory, BlobServiceFactory>();
            services.AddScoped <IAlertNotificationRequestService, AlertNotificationRequestService>();
            services.AddScoped <IAlertTemplateService, AlertTemplateService>();
            services.AddIdentity <User, DocumentDbIdentityRole>()
            .AddDocumentDbStores()
            .AddDefaultTokenProviders();

            services.AddSingleton <IAuthorizationPolicyProvider, CustomAuthorizationPolicyProvider>();

            //Register the in-memory cookie auth ticket store.
            //This is to avoid large auth cookie when there are lot of claims.
            //Note: This will only work for single-instance server setup.
            services.AddSingleton <IPostConfigureOptions <CookieAuthenticationOptions>, InjectedAuthenticationOptions>();
            services.AddSingleton <ITicketStore, InMemoryTicketStore>();
            services.AddCors(c =>
            {
                c.AddPolicy("AllowOrigin", options => options.AllowAnyOrigin());
            });
            services.ConfigureApplicationCookie(options =>
            {
                options.Cookie.Name         = "CloudYawnPod";
                options.Cookie.HttpOnly     = true;
                options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
                options.Cookie.SameSite     = SameSiteMode.None;
            });
            services.ConfigureApplicationCookie(options =>
            {
                options.Events.OnRedirectToLogin = ctx =>
                {
                    ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                    return(Task.FromResult(0));
                };

                options.Events.OnRedirectToAccessDenied = ctx =>
                {
                    ctx.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                    return(Task.FromResult(0));
                };
            });
            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddMvc(options =>
            {
                options.Filters.Add(new ProducesAttribute("application/json"));
                options.ModelBinderProviders.Insert(0, new DateTimeBinderProvider());
                options.AllowCombiningAuthorizeFilters = false;
            })
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(options =>
            {
                options.SerializerSettings.DateTimeZoneHandling  = DateTimeZoneHandling.Utc;
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            });

            services.AddSwaggerGen(swagger =>
            {
                swagger.DescribeAllEnumsAsStrings();
                swagger.DescribeAllParametersInCamelCase();
                swagger.SwaggerDoc("v1", new Info {
                    Title = "YawnMassage Platform API", Version = "v1"
                });
                swagger.OperationFilter <SwaggerCustomHeaderParameter>();
            });
        }