public async Task <IActionResult> Create([FromBody] CreatePayment createPayment)
        {
            var validate = await _createPaymentValidator.ValidateAsync(createPayment);

            if (!validate.IsValid)
            {
                return(BadRequest(validate.Errors.Select(e => e.ErrorMessage)));
            }

            GetPayment result;

            using (var operation = _telemetrySubmitter.BeginTimedOperation(new ServiceOperation(nameof(PaymentsController), nameof(Create))))
            {
                try
                {
                    result = await _paymentManager.CreateAsync(createPayment);
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "Failed to Create payment due to (0)", ex.Message);
                    operation.SetFaulted(ex);
                    throw;
                }
            }
            return(CreatedAtAction(nameof(Get), new { id = result.Id }, result));
        }