Beispiel #1
0
        public async Task <IActionResult> AdvanceOrderAsync([FromRoute] int orderNumber, [FromQuery] OrderTrigger trigger)
        {
            try
            {
                Order order = await findOrderByNumberPort.FindByNumber(orderNumber);

                await stateMachine.BuildFor(order).FireAsync(trigger);

                return(Ok(order.Number));
            }
            catch (OrderNotFoundException ex)
            {
                logger.LogError(ex, ex.Message);
                return(NotFound(orderNumber));
            }
            catch (Exception ex)
            {
                logger.LogError(ex, ex.Message);
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }