public override async Task SubmitOrder()

in src/ModernTacoShop/SubmitOrder/src/Services/SubmitOrderService.cs [47:90]


        public override async Task<Empty> SubmitOrder(Order order, ServerCallContext serverCallContext)
        {
            try
            {
                var systemsManagementClient = new AmazonSimpleSystemsManagementClient();
                if (string.IsNullOrEmpty(_tableName))
                {
                    // The name of the table may vary, so get it from the Systems Manager Parameter Store.
                    var tableNameParameter = await systemsManagementClient.GetParameterAsync(
                        new GetParameterRequest { Name = "/ModernTacoShop/SubmitOrder/OrderTableName" });
                    _tableName = tableNameParameter.Parameter.Value;
                }

                var client = new AmazonDynamoDBClient();
                var context = new DynamoDBContext(client);
                var record = new SubmitOrderDynamoDbRecord(order);
                await context.SaveAsync(record, new DynamoDBOperationConfig() { OverrideTableName = _tableName });


                // Submit the order to the 'Track Order' service.
                // First, get the domain name of the 'Track Order' service from the parameter store.
                var trackOrderServiceDomainNameParameter = await systemsManagementClient.GetParameterAsync(
                    new GetParameterRequest { Name = "/ModernTacoShop/TrackOrder/DomainName" });
                var trackOrderServiceDomainName = trackOrderServiceDomainNameParameter.Parameter.Value;

                using var channel = GrpcChannel.ForAddress($"https://{trackOrderServiceDomainName}");

                var trackOrderClient = new TrackOrder.Protos.TrackOrder.TrackOrderClient(channel);
                var reply = await trackOrderClient.StartTrackingOrderAsync(new TrackOrder.Protos.Order
                {
                    LastPosition = null,
                    LastUpdated = Timestamp.FromDateTime(DateTime.UtcNow),
                    OrderId = order.OrderId,
                    PlacedOn = order.PlacedOn,
                    Status = TrackOrder.Protos.OrderStatus.Placed
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error in SubmitOrder");
            }

            return new Empty();
        }