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 }));
        }
Esempio n. 2
0
        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 }));
        }