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)); }
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)); }