public async Task <ActionResult> Subscribe([FromBody] Subscription subscription) { _logger.ForContext <NewsletterController>().Information("Subscribe(subscription: {@Subscription})", subscription);; try { ValidationErrorList validationErrors = await _newsletterService.ValidateSubscription(subscription); if (!validationErrors.isValid) { return(new JsonResult(new ApiResponse <bool>(false, validationErrors.Errors))); } return(new JsonResult(await _newsletterService.Subscribe(subscription))); } catch (Exception ex) { _logger.ForContext <NewsletterController>().Error($"Something went wrong: {ex}"); return(StatusCode(500, "Internal server error")); } }