public IActionResult Post([FromBody] PaymentTypeDto paymentTypeDto) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var paymentType = Mapper.Map <PaymentType>(paymentTypeDto); if (_paymentTypeRepository.PaymentTypeExists(paymentType)) { return(StatusCode(500, "PaymentType already exists.")); } var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var profile = _accountRepository.GetUserProfile(userId); var createdPaymentType = _paymentTypeRepository.CreatePaymentType(paymentType, profile.UserProfileId); if (createdPaymentType == null) { return(StatusCode(500, "A problem happened while handling your request.")); } var createdPaymentTypeToReturn = Mapper.Map <PaymentTypeDto>(createdPaymentType); return(Created(createdPaymentTypeToReturn)); } catch (Exception ex) { _logger.LogError($"Failed in Post /PaymentTypes: {ex}"); return(StatusCode(500, "A problem happened while handling your request.")); } }