public async Task <IActionResult> CancelApplicationAsync([FromBody] CancelApplicationCommand command, [FromHeader(Name = "x-requestid")] string requestId)
        {
            bool commandResult = false;

            if (Guid.TryParse(requestId, out Guid guid) && guid != Guid.Empty)
            {
                var requestCancelApplication = new IdentifiedCommand <CancelApplicationCommand, bool>(command, guid);

                _logger.LogInformation(
                    "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})",
                    requestCancelApplication.GetGenericTypeName(),
                    nameof(requestCancelApplication.Command.ApplicationNumber),
                    requestCancelApplication.Command.ApplicationNumber,
                    requestCancelApplication);

                commandResult = await _mediator.Send(requestCancelApplication);
            }

            if (!commandResult)
            {
                return(BadRequest());
            }

            return(Ok());
        }
        public async Task Handle(ApplicationPaymentFailedIntegrationEvent @event)
        {
            using (LogContext.PushProperty("IntegrationEventContext", $"{@event.Id}-{Program.AppName}"))
            {
                _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event);

                var command = new CancelApplicationCommand(@event.ApplicationId);

                _logger.LogInformation(
                    "----- Sending command: {CommandName} - {IdProperty}: {CommandId} ({@Command})",
                    command.GetGenericTypeName(),
                    nameof(command.ApplicationNumber),
                    command.ApplicationNumber,
                    command);

                await _mediator.Send(command);
            }
        }
        public async Task <IActionResult> CancelApplication([FromRoute] long applicationNumber, [FromBody] CancelApplicationCommand command)
        {
            _logger.LogInformation("Updating application status for application {applicationNumber} to {status}", applicationNumber, "Canceled");
            command.ApplicationNumber = applicationNumber;
            var           cancelApplicationCommand = new IdentifiedCommand <CancelApplicationCommand, CommandStatus>(command, new Guid());
            CommandStatus commandResult            = await _mediator.Send(cancelApplicationCommand);

            if (commandResult.CommandResult.Equals(StandardCommandResult.OK))
            {
                return(Ok());
            }
            else if (commandResult.CommandResult.Equals(StandardCommandResult.BAD_REQUEST))
            {
                return(BadRequest());
            }
            else
            {
                return(StatusCode(500));
            }
        }