Ejemplo n.º 1
0
        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 }));
            }
        }
Ejemplo n.º 2
0
        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 }));
            }
        }