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); }
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); }