BgEngine.Controllers.SubscriptionController.SubscribeToNewsletter C# (CSharp) Method

SubscribeToNewsletter() private method

private SubscribeToNewsletter ( BgEngine.Web.ViewModels.SubscriptionViewModel subscription ) : System.Web.Mvc.JsonResult
subscription BgEngine.Web.ViewModels.SubscriptionViewModel
return System.Web.Mvc.JsonResult
        public JsonResult SubscribeToNewsletter(SubscriptionViewModel subscription)
        {
            if (ModelState.IsValid)
            {
                SubscriptionDTO subscriptiondto = Mapper.Map<SubscriptionViewModel, SubscriptionDTO>(subscription);
                if (CodeFirstSecurity.IsAuthenticated)
                {
                    subscriptiondto.IsConfirmed = true;
                }
                try
                {
                    string token = SubscriptionServices.SubscribeToNewsletter(subscriptiondto);
                    if (!CodeFirstSecurity.IsAuthenticated)
                    {
                        SmtpClient client = new SmtpClient { Host = BgResources.Email_Server, Port = Int32.Parse(BgResources.Email_SmtpPort), EnableSsl = BgResources.Email_SSL, Credentials = new NetworkCredential(BgResources.Email_UserName, BgResources.Email_Password) };
                        UserMailer.ConfirmSubscription(token, subscriptiondto.SubscriberEmail, subscriptiondto).Send(new SmtpClientWrapper { InnerSmtpClient = client });
                        return Json(new { result = "ok", message = String.Format(Resources.AppMessages.Subscription_Newsletter_ConfirmationMail_Sent, subscription.SubscriberEmail) });
                    }
                    return Json(new { result = "ok", message = Resources.AppMessages.ConfirmSubscription_Thanks });
                }
                catch (ApplicationValidationErrorsException ex)
                {
                    foreach (string str in ex.ValidationErrors)
                    {
                        ModelState.AddModelError("", str);
                    }
                    return Json(new { result = "error", errors = ModelState.Where(s => s.Value.Errors.Count > 0).Select(s => new KeyValuePair<string, string>(s.Key, s.Value.Errors.First().ErrorMessage)).ToArray(), modelerror = false });
                }
                catch (SmtpException ex)
                {
                    SubscriptionServices.DeleteSubscription(subscription.SubscriberEmail, SubscriptionType.Newsletter);
                    return Json(new { result = "error", errors = new List<KeyValuePair<string,string>> { new KeyValuePair<string, string>("", Resources.AppMessages.Error_SendMail) }, modelerror = false });
                }
            }
            return Json(new { result = "error", errors = ModelState.Where(s => s.Value.Errors.Count > 0).Select(s => new KeyValuePair<string, string>(s.Key, s.Value.Errors.First().ErrorMessage)).ToArray(), modelerror = true });
        }

Same methods

SubscriptionController::SubscribeToNewsletter ( ) : System.Web.Mvc.ActionResult