public ActionResult AddOnsEdit(UserPackageDetailViewModel model) { UserPackage userPackage = db.UserPackages.Find(model.Id); if (userPackage == null) { return(HttpNotFound()); } // Remove Existing Add ons packages if (userPackage.UserPackagesAddons.Count > 0) { foreach (var userPackagesAddon in userPackage.UserPackagesAddons.Where(a => a.NextServiceDate == userPackage.NextServiceDate).ToList()) { db.UserPackagesAddons.Remove(userPackagesAddon); db.SaveChanges(); } } var addOnsService = db.Services.Where(s => s.IsAddOn).ToList(); if (model.ServiceID.Length > 0) { foreach (int serviceId in model.ServiceID) { var service = addOnsService.Where(i => i.ServiceID == serviceId).FirstOrDefault(); if (service != null) { var userPackageAddOne = new UserPackagesAddon(); userPackageAddOne.UserPackageID = userPackage.Id; userPackageAddOne.ServiceID = service.ServiceID; userPackageAddOne.ActualPrice = service.Service_Price; userPackageAddOne.DiscountPrice = 0M; userPackageAddOne.CreatedDt = DateTime.Now; userPackageAddOne.NextServiceDate = userPackage.NextServiceDate; userPackage.UserPackagesAddons.Add(userPackageAddOne); db.SaveChanges(); } } } //userPackage.IsActive = false; //db.SaveChanges(); return(RedirectToAction("Details", new { Id = model.Id })); }
public ActionResult SubscribePackage(UserPackageAddOnViewModel model, string[] services) { var package = db.Packages.Where(a => a.PackageId == model.PackageID).FirstOrDefault(); if (package == null) { return(View()); } var userId = User.Identity.GetUserId(); //var carList = db.CarUsers.Where(a => a.UserId == userId).FirstOrDefault(); //if (carList == null) // return View(); int caridfromuserpage = Convert.ToInt32(model.SelectedCar); if (Session["SelectedCar"] != null) { var car = Session["SelectedCar"] as CarUser; caridfromuserpage = car.CarId; } //Save User Packges var savingEntity = new UserPackage { UserId = userId, PackageId = model.PackageID, CarId = caridfromuserpage, SubscribedDate = DateTime.Now, ActualPrice = package.Package_Price, TotalPrice = model.Packages.Package_Price, PriceWithAddOns = model.Packages.Package_Price - package.Package_Price, DiscountPrice = 0, CreatedDt = DateTime.Now, PaymentRecieved = false, ServiceDay = model.ServiceDay, SubscriptionTypeId = model.SubscriptionTypeId, GaragesTimeingSlotId = model.GaragesTimeingSlotId, }; db.UserPackages.Add(savingEntity); db.SaveChanges(); //Sve uer addson if (services != null) { //Save user addons UserPackagesAddon addon = null; foreach (var item in services) { int serviceId = 0; int.TryParse(item, out serviceId); if (serviceId > 0) { var serviceAddOns = db.Services.FirstOrDefault(s => s.ServiceID == serviceId); if (serviceAddOns != null) { addon = new UserPackagesAddon(); addon.ServiceID = Convert.ToInt32(item); addon.UserPackageID = savingEntity.Id; addon.ActualPrice = serviceAddOns.Service_Price; addon.DiscountPrice = 0; addon.CreatedDt = DateTime.Now; db.UserPackagesAddons.Add(addon); db.SaveChanges(); } } } } if (Session["NewServiceGarageId"] != null) { var car = db.CarUsers.Where(a => a.CarId == caridfromuserpage).FirstOrDefault(); car.GarageId = Convert.ToInt32(Session["NewServiceGarageId"]); db.SaveChanges(); } //save car auto renewal //If this is first car set Autorenewal to True model.AutoRenewalSubscription = true; if (model.AutoRenewalSubscription) { if (Session["SelectedCar"] != null) { var carTemp = Session["SelectedCar"] as CarUser; var car = db.CarUsers.Where(a => a.CarId == carTemp.CarId).FirstOrDefault(); car.AutoRenewal = model.AutoRenewalSubscription; db.SaveChanges(); } else { var carId = Convert.ToInt32(model.SelectedCar); var car = db.CarUsers.Where(a => a.CarId == carId).FirstOrDefault(); car.AutoRenewal = model.AutoRenewalSubscription; db.SaveChanges(); } } return(RedirectToAction("PrepaymentConfirmation", new { id = savingEntity.Id })); }