public async Task MakePayment()

in PetAdoptions/cdk/pet_stack/resources/microservices/petsite/petsite/Controllers/PaymentController.cs [61:109]


        public async Task<IActionResult> MakePayment(string petId, string pettype)
        {
            AWSXRayRecorder.Instance.AddMetadata("PetType", pettype);
            AWSXRayRecorder.Instance.AddMetadata("PetId", petId);

            ViewData["txStatus"] = "success";

            try
            {
                AWSXRayRecorder.Instance.BeginSubsegment("Call Payment API");

                Console.WriteLine(
                    $"[{AWSXRayRecorder.Instance.TraceContext.GetEntity().RootSegment.TraceId}][{AWSXRayRecorder.Instance.GetEntity().TraceId}] - Inside MakePayment Action method - PetId:{petId} - PetType:{pettype}");

                AWSXRayRecorder.Instance.AddAnnotation("PetId", petId);
                AWSXRayRecorder.Instance.AddAnnotation("PetType", pettype);

                var result = await PostTransaction(petId, pettype);
                AWSXRayRecorder.Instance.EndSubsegment();

                AWSXRayRecorder.Instance.BeginSubsegment("Post Message to SQS");
                var messageResponse = PostMessageToSqs(petId, pettype).Result;
                AWSXRayRecorder.Instance.EndSubsegment();

                AWSXRayRecorder.Instance.BeginSubsegment("Send Notification");
                var snsResponse = SendNotification(petId).Result;
                AWSXRayRecorder.Instance.EndSubsegment();

                if ("bunny" == pettype) // Only call StepFunction for "bunny" pettype to reduce number of invocations
                {
                   // Console.WriteLine($"STEPLOG- PETTYPE- {pettype}");
                    //   AWSXRayRecorder.Instance.BeginSubsegment("Start Step Function");
                    var stepFunctionResult = StartStepFunctionExecution(petId, pettype).Result;
                    //Console.WriteLine($"STEPLOG - RESPONSE - {stepFunctionResult.HttpStatusCode}");
                    //    AWSXRayRecorder.Instance.EndSubsegment();
                }

                //Increase purchase metric count
                PetAdoptionCount.Inc();
                return View("Index");
            }
            catch (Exception ex)
            {
                ViewData["txStatus"] = "failure";
                ViewData["error"] = ex.Message;
                AWSXRayRecorder.Instance.AddException(ex);
                return View("Index");
            }
        }