public ActionResult New(SubscriptionCreateViewModel model) { _logger.Information("Action: New; Controller: Subscription; Call method: POST;"); try { if (!ModelState.IsValid) { return(View(model)); } if (model.TotalPrice > model.UserBalance) { ModelState.AddModelError("", "Not enough money to complete the operation"); return(View(model)); } _subscriptionService.RegisterNewSubscription(model.UserId, model.Publisher.Id, model.SubscriptionPeriod); return(RedirectToAction("Index", "Subscription")); } catch (Exception e) { LogException(e); return(RedirectToAction("Index", "Error", new { exceptionType = e.GetType().Name })); } }
public ActionResult New(int?id) { _logger.Information("Action: New; Controller: Subscription; Call method: GET;"); try { if (id == null) { id = 1; } string publisherToFindId = id.ToString(); var userId = User.Identity.GetUserId(); if (_subscriptionService.CheckIfSubscriptionExists(userId, publisherToFindId)) { return(View("AlreadySubscribed")); } if (!_subscriptionService.CheckIfSubscritpionPublisherExists(publisherToFindId)) { return(View("NotFound")); } SubscriptionCreateViewModel model = new SubscriptionCreateViewModel { Publisher = _subscriptionService.GetSubscriptionPublisher(publisherToFindId), UserId = User.Identity.GetUserId(), UserBalance = _subscriptionService.GetUserBalanceForSubscription(User.Identity.GetUserId()) }; return(View(model)); } catch (Exception e) { LogException(e); return(RedirectToAction("Index", "Error", new { exceptionType = e.GetType().Name })); } }