/// <inheritdoc/>
        public async Task ExecuteAsync(DeleteApplication command)
        {
            var app = await _repository.GetByIdAsync(command.Id);

            await _repository.DeleteAsync(command.Id);

            var evt = new ApplicationDeleted {
                ApplicationName = app.Name, ApplicationId = app.Id, AppKey = app.AppKey
            };
            await _eventBus.PublishAsync(evt);
        }
        /// <inheritdoc/>
        public async Task HandleAsync(IMessageContext context, DeleteApplication command)
        {
            context.Principal.EnsureApplicationAdmin(command.Id);

            var app = await _repository.GetByIdAsync(command.Id);

            await _repository.DeleteAsync(command.Id);

            var evt = new ApplicationDeleted {
                ApplicationName = app.Name, ApplicationId = app.Id, AppKey = app.AppKey
            };
            await context.SendAsync(evt);
        }