Example #1
0
        public async Task <CommandResult> Handle(CreateAppCommand command)
        {
            var result = new CommandResult();
            var app    = command.CreateApp();

            if (!await _validator.IsValid(app))
            {
                result.AddValidationErrors(_validator.Errors);
            }
            else
            {
                if (await _store.AppExists(app.Id))
                {
                    result.AddValidationError(new ValidationError
                    {
                        Name         = "Id",
                        ErrorMessage = "AppIdAlreadyExists",
                        Parameters   = new[] { app.Id }
                    });
                }
                else
                {
                    await _store.AddApp(app);

                    result.SetResultData(app);
                }
            }
            return(result);
        }
Example #2
0
        public async Task <CommandResult> Handle(UpdateAppCommand command)
        {
            var result = new CommandResult();

            var app = await _store.GetApp(command.Id);

            if (app == null)
            {
                result.SetNotFound();
                return(result);
            }

            command.UpdateApp(app);

            if (!await _validator.IsValid(app))
            {
                result.AddValidationErrors(_validator.Errors);
            }
            else
            {
                await _store.UpdateApp(app);

                await _dispatcher.PublishEvent(new AppChangedEvent
                {
                    AppId           = app.Id,
                    DisplayName     = app.DisplayName,
                    Languages       = app.Languages,
                    DefaultLanguage = app.DefaultLanguage
                });
            }

            return(result);
        }