public ActionResult Subscribe(SubscriptionModel model) { if (ModelState.IsValid) { SubscriptionRequest request = new SubscriptionRequest(); SubscriptionResponse response = new SubscriptionResponse(); Subscription subscription = new Subscription(); subscription.EmailAddress = model.EmailAddress; subscription.SubscriptionDate = DateTime.Now; subscription.MarketingSource = MapMarketingSource(model.MarketingSource); subscription.Other = model.Other; subscription.Reason = model.Reason; request.Subscription = subscription; try { response = service.GetSubscription(request); if (response.Status.Equals(StatusCode.RecordNotFound)) { response = service.Subscribe(request); } if (response.Status != StatusCode.Success) { model.Subscribed = false; model.Message = response.Message; return(View("Index", model)); } model.Subscribed = true; model.Message = response.Message; } catch (Exception ex) { Log(ex.Message, ex.StackTrace); return(View("Error")); } } return(View("Index", model)); }
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")); } }
public IActionResult Subscribe(NewsletterDto model) { _newsletterService.Subscribe(model); return(Ok()); }