Exemple #1
0
        protected RavenGateway(IServiceProvider provider)
        {
            _holder  = provider.GetRequiredService <StoreHolder>();
            _session = _holder.Store.OpenSession();

            Actor      = provider.GetRequiredService <IActor>();
            Hub        = provider.GetRequiredService <ICommunicationHub>();
            Identities = provider.GetRequiredService <IIdentityFacade>();
        }
Exemple #2
0
        private IStoreHolder <TStore> GetStoreHolder(IServiceProvider provider)
        {
            StoreHolder <TStore> storeHolder = provider.GetRequiredService <StoreHolder <TStore> >();

            if (defaultState != null)
            {
                storeHolder.RootObservableProperty.OverwriteFrom(defaultState, false);
            }

            return(storeHolder);
        }
        public Task Invoke(HttpContext httpContext,
                           IActor actor,
                           StoreHolder holder,
                           IStrategyFactory factory)
        {
            using (var session = holder.Store.OpenSession())
            {
                actor.System = LoadSystem(session);
                actor.Me     = LoadMe(httpContext, session);

                if (actor.HasSystemRole(SystemRoles.ContentManager) ||
                    actor.HasSystemRole(SystemRoles.ConventionManager) ||
                    actor.HasSystemRole(SystemRoles.ReceptionManager) ||
                    actor.HasSystemRole(SystemRoles.UsersManager))
                {
                    actor.ManagedConvention = LoadConvention(actor.System.ManagersConventionId, session);
                    if (actor.ManagedConvention != null)
                    {
                        actor.ManagedDropDowns = LoadDropDowns(factory, actor.ManagedConvention, actor.System);
                    }
                }

                if (actor.ManagedConvention != null &&
                    actor.System.DisplayConventionId == actor.System.ManagersConventionId)
                {
                    actor.DisplayConvention = actor.ManagedConvention;
                    actor.DisplayDropDowns  = actor.ManagedDropDowns;
                }
                else
                {
                    actor.DisplayConvention = LoadConvention(actor.System.DisplayConventionId, session);
                    if (actor.DisplayConvention != null)
                    {
                        actor.DisplayDropDowns = LoadDropDowns(factory, actor.DisplayConvention, actor.System);
                    }
                }
            }

            return(_next(httpContext));
        }
Exemple #4
0
 public PageInitNode(StoreHolder holder, PageDefinition definition) : base(null)
 {
     this.StoreHolder = holder;
     this.definition  = definition;
 }
Exemple #5
0
 public StopwatchTimeStateReaderNode(INode parent, string stateKey, StoreHolder holder) : base(parent)
 {
     this.stateKey    = stateKey;
     this.storeHolder = holder;
 }
Exemple #6
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                //options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.Lax;
            });


            services.AddAuthorization(options =>
            {
                foreach (var policy in Policies.GetPolicies())
                {
                    options.AddPolicy(policy.Key, p => p.Requirements.Add(policy.Value));
                }
            });


            services.AddAntiforgery();
            services.AddMvc(options =>
            {
                options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
                options.EnableEndpointRouting = true;
            })
            .AddRazorRuntimeCompilation()
            .AddNewtonsoftJson();

            services.AddHsts(opt =>
            {
                opt.Preload           = true;
                opt.IncludeSubDomains = true;
            });
            services.AddHttpsRedirection(opt =>
            {
                opt.HttpsPort          = 443;
                opt.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
            });

            services.AddLogging(opt =>
            {
                opt.SetMinimumLevel(LogLevel.Warning);
            });

            var database = "";

            if (_environment.EnvironmentName == "Development")
            {
                database = StoreConsts.DatabaseName_Developement;
            }

            if (_environment.EnvironmentName == "Staging")
            {
                database = StoreConsts.DatabaseName_Staging;
            }

            if (_environment.EnvironmentName == "Production")
            {
                database = StoreConsts.DatabaseName_Production;
            }

            var certificatePath = Path.Combine(_environment.ContentRootPath, StoreConsts.CertificatePath);
            var holder          = new StoreHolder(database, certificatePath, StoreConsts.ConnectionString);

            holder.Store.ConfigureForNodaTime();
            holder.Store.Initialize();
            if (holder.Store.Maintenance.Server.Send(new GetDatabaseRecordOperation(database)) == null)
            {
                var databaseRecord = new DatabaseRecord(database);
                holder.Store.Maintenance.Server.Send(new CreateDatabaseOperation(databaseRecord));
            }
            ;

            IndexCreation.CreateIndexes(typeof(EventsIndex_ByTitleDescription).Assembly, holder.Store);

            services.AddSingleton(holder);
            services
            .AddRavenDbAsyncSession(holder.Store)
            .AddIdentity <LongTermParticipant, IdentityRole>(identityOptions =>
            {
                // Password settings
                identityOptions.Password.RequireDigit           = true;
                identityOptions.Password.RequiredLength         = 6;
                identityOptions.Password.RequireNonAlphanumeric = false;
                identityOptions.Password.RequireUppercase       = false;
                identityOptions.Password.RequireLowercase       = false;
                identityOptions.Password.RequiredUniqueChars    = 4;

                // Lockout settings
                identityOptions.Lockout.DefaultLockoutTimeSpan  = TimeSpan.FromMinutes(5);
                identityOptions.Lockout.MaxFailedAccessAttempts = 10;
                identityOptions.Lockout.AllowedForNewUsers      = true;

                // User settings
                identityOptions.User.RequireUniqueEmail = true;
            })    // Adds an identity system to ASP.NET Core
            .AddRavenDbIdentityStores <LongTermParticipant>()
            .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options =>
            {
                // Cookie settings
                //options.Cookie.Expiration = TimeSpan.FromDays(30);
                options.ExpireTimeSpan    = TimeSpan.FromDays(30);
                options.LoginPath         = "/Participant/Account/LoginOrRegister"; // If the LoginPath is not set here, ASP.NET Core will default to /Account/Login
                options.LogoutPath        = "/Participant/Account/Logout";          // If the LogoutPath is not set here, ASP.NET Core will default to /Account/Logout
                options.AccessDeniedPath  = "/Participant/AccessDenied";            // If the AccessDeniedPath is not set here, ASP.NET Core will default to /Account/AccessDenied
                options.SlidingExpiration = true;
            });

            services.AddScopedPolicyHandlers();
            StartupDependencyInjection(services);
            services.AddAntiforgery();
        }
Exemple #7
0
 public PagePopNode(INode parent, StoreHolder holder) : base(parent)
 {
     this.StoreHolder = holder;
 }
Exemple #8
0
 public SceneSyncNode(INode parent, StoreHolder holder) : base(parent)
 {
     this.storeHolder = holder;
 }
Exemple #9
0
 public CounterNode(INode parent, StoreHolder holder, string stateKey, Text text) : base(parent)
 {
     this.storeHolder = holder;
     this.stateKey    = stateKey;
     this.text        = text;
 }
Exemple #10
0
 public SceneRendererNode(StoreHolder holder) : base(null)
 {
     storeHolder = holder;
 }
Exemple #11
0
 public SceneRemoveNode(INode parent, StoreHolder holder, string[] removeSceneNames) : base(parent)
 {
     this.storeHolder      = holder;
     this.removeSceneNames = removeSceneNames;
 }
Exemple #12
0
 public CounterTrigger(INode parent, Button button, string stateKey, StoreHolder holder) : base(parent)
 {
     this.button      = button;
     this.stateKey    = stateKey;
     this.storeHolder = holder;
 }
Exemple #13
0
 public SampleHeaderTitleReadNode(INode parent, StoreHolder holder) : base(parent)
 {
     this.StoreHolder = holder;
 }
Exemple #14
0
 public SceneAddNode(INode parent, StoreHolder holder, string[] addSceneNames) : base(parent)
 {
     this.storeHolder   = holder;
     this.addSceneNames = addSceneNames;
 }
Exemple #15
0
 public SceneSyncNode(StoreHolder holder) : base(null)
 {
     this.storeHolder = holder;
 }
Exemple #16
0
 public PagePushNode(INode parent, StoreHolder holder, Page page) : base(parent)
 {
     this.StoreHolder = holder;
     this.Page        = page;
 }
Exemple #17
0
 public RavenConventionBuilderGateway(StoreHolder holder)
 {
     _holder = holder;
 }