Example #1
0
        public async Task <UpdateSeoSettingsCommand> ExecuteAsync(GetPatchableCommandQuery <UpdateSeoSettingsCommand> query, IExecutionContext executionContext)
        {
            var settings = await _queryExecutor.ExecuteAsync(new GetSettingsQuery <SeoSettings>(), executionContext);

            return(new UpdateSeoSettingsCommand()
            {
                HumansTxt = settings.HumansTxt,
                RobotsTxt = settings.RobotsTxt
            });
        }
Example #2
0
        /// <summary>
        /// Patches a command to modify the current state and then executes it.
        /// </summary>
        /// <typeparam name="TCommand">Type of command to patch and execute.</typeparam>
        /// <param name="commandPatcher">
        /// An action to configure or "patch" a command that's been initialized
        /// with existing data.
        /// </param>
        public static async Task PatchCommandAsync <TCommand>(this IDomainRepository repository, Action <TCommand> commandPatcher)
            where TCommand : IPatchableCommand
        {
            var query   = new GetPatchableCommandQuery <TCommand>();
            var command = await repository.ExecuteQueryAsync(query);

            commandPatcher(command);

            await repository.ExecuteCommandAsync(command);
        }
Example #3
0
        public async Task <UpdateGeneralSiteSettingsCommand> ExecuteAsync(GetPatchableCommandQuery <UpdateGeneralSiteSettingsCommand> query, IExecutionContext executionContext)
        {
            var settings = await _queryExecutor.ExecuteAsync(new GetSettingsQuery <GeneralSiteSettings>(), executionContext);

            return(new UpdateGeneralSiteSettingsCommand()
            {
                AllowAutomaticUpdates = settings.AllowAutomaticUpdates,
                ApplicationName = settings.ApplicationName
            });
        }
        public async Task <JsonResult> RunCommandAsync <TCommand>(IDelta <TCommand> delta)
            where TCommand : class, IPatchableCommand
        {
            var query   = new GetPatchableCommandQuery <TCommand>();
            var command = await _queryExecutor.ExecuteAsync(query);

            if (delta != null)
            {
                delta.Patch(command);
            }

            return(await RunCommandAsync(command));
        }
        public async Task <UpdateCurrentUserCommand> ExecuteAsync(GetPatchableCommandQuery <UpdateCurrentUserCommand> query, IExecutionContext executionContext)
        {
            if (!executionContext.UserContext.UserId.HasValue)
            {
                return(null);
            }

            var user = await _dbContext
                       .Users
                       .AsNoTracking()
                       .FilterCanSignIn()
                       .FilterById(executionContext.UserContext.UserId.Value)
                       .Select(u => new UpdateCurrentUserCommand()
            {
                Email     = u.Email,
                FirstName = u.FirstName,
                LastName  = u.LastName
            })
                       .SingleOrDefaultAsync();

            return(user);
        }