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)); }