Beispiel #1
0
        public IActionResult Subscriptions(long id, long subscriptionId = 0)
        {
            var viewModel = new Models.CustomerViewModels.SubscriptionViewModel();

            if (subscriptionId > 0)
            {
                var subscription = _context.Subscriptions.SingleOrDefault(c => c.Id == subscriptionId);
                viewModel.NewSubscription = subscription;
            }

            var customer = new Customer()
            {
                CompanySubscriptions = _context.Subscriptions.Include(c => c.SubscriptionType).Where(c => c.CompanyId == id).Where(x => x.EndDate > DateTime.Now).ToList(),
                Company = _context.CompanyDetails.SingleOrDefault(c => c.Id == id)
            };

            if (customer.Company.EndDate < DateTime.Now)
            {
                return(NotFound());
            }

            viewModel.Customer = customer;
            viewModel.Types    = SubscriptionType.GetTypes(_context.SubscriptionTypes.Where(x => x.Id > 0).ToList());

            return(View(viewModel));
        }
Beispiel #2
0
        public IActionResult Subscriptions(Models.CustomerViewModels.SubscriptionViewModel model)
        {
            var companyId    = model.Customer.Company.Id;
            var subscription = new Subscription()
            {
                SubscriptionTypeId = model.NewSubscription.SubscriptionTypeId,
                StartDate          = DateTime.Now,
                EndDate            = new DateTime(2070, 01, 01),
                UnitPrice          = model.NewSubscription.UnitPrice,
                Cost             = model.NewSubscription.Cost,
                Url              = model.NewSubscription.Url,
                CompanyId        = companyId,
                BillingFrequency = model.NewSubscription.BillingFrequency
            };

            var viewModel = new Models.CustomerViewModels.SubscriptionViewModel();

            viewModel.Types = SubscriptionType.GetTypes(_context.SubscriptionTypes.Where(x => x.Id > 0).ToList());

            if (model.NewSubscription.Id == 0)
            {
                try
                {
                    _context.Add(subscription);
                    _context.SaveChanges();
                    StatusMessage = "New subscription added.";
                }
                catch (Exception ex)
                {
                    StatusMessage             = string.Format("An error occured when adding subscription: {0}", ex.Message);
                    viewModel.NewSubscription = subscription;
                }
            }
            else if (model.NewSubscription.Id > 0)
            {
                subscription.Id = model.NewSubscription.Id;

                try
                {
                    _context.Update(subscription);
                    _context.SaveChanges();
                    return(RedirectToLocal("/Customer/Subscriptions/" + model.Customer.Company.Id));
                }
                catch (Exception ex)
                {
                    StatusMessage             = string.Format("An error occured when adding subscription: {0}", ex.Message);
                    viewModel.NewSubscription = subscription;
                }
            }

            var customer = new Customer()
            {
                CompanySubscriptions = _context.Subscriptions.Include(c => c.SubscriptionType).Where(c => c.CompanyId == companyId).ToList(),
                Company = _context.CompanyDetails.SingleOrDefault(c => c.Id == companyId)
            };

            viewModel.Customer      = customer;
            viewModel.StatusMessage = StatusMessage;

            return(View(viewModel));
        }