public JsonResult Subscription(
            SubscribeViewModel subscribeViewModel,
            SubscriptionValidator subscriptionValidator)
        {
            Throw.IfNull(subscribeViewModel, nameof(subscribeViewModel));
            Throw.IfNull(subscriptionValidator, nameof(subscriptionValidator));

            subscriptionValidator.SetMessageToEmailValidator(subscribeViewModel.EmailValidationMessage);
            var modelState         = subscriptionValidator.Validate(subscribeViewModel);
            var success            = false;
            var validationMessages = modelState.Errors.FirstOrDefault()?.ErrorMessage;

            if (modelState.IsValid)
            {
                success = _mailingService.Subscribe(subscribeViewModel);
            }

            return(Json(new { success, validationMessages }));
        }