// GET: UserPackages/Details/5
        public ActionResult Details(int?id)
        {
            DateTime cTime   = DateTime.Now;
            DateTime nTime   = cTime.AddDays(2);
            double   dayDiff = 0;

            dayDiff = nTime.Subtract(cTime).TotalDays;

            //Response.Write("dayDiff : " + dayDiff);

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserPackage userPackage = db.UserPackages.Find(id);

            if (userPackage == null)
            {
                return(HttpNotFound());
            }

            DateTime currentDate = DateTime.Now;

            UserPackageDetailViewModel userPackageModel = new UserPackageDetailViewModel();

            userPackageModel.Id               = userPackage.Id;
            userPackageModel.ActualPrice      = userPackage.ActualPrice;
            userPackageModel.TotalPrice       = userPackage.TotalPrice;
            userPackageModel.TaxAmount        = userPackage.TaxAmount;
            userPackageModel.TipAmount        = userPackage.TipAmount;
            userPackageModel.SubscriptionType = SubscriptionTypeInfo.GetSubscriptionTypeInfo(userPackage.SubscriptionTypeId);
            userPackageModel.ServiceDay       = userPackage.ServiceDay;
            userPackageModel.TimeSlot         = userPackage.GaragesTimeingSlotId.HasValue ? userPackage.GargesTimeingSlot.SlotTimeing : "";
            userPackageModel.SubscribedDate   = userPackage.SubscribedDate;
            userPackageModel.IsActive         = userPackage.IsActive;

            userPackageModel.Package = new PackageDetailViewModel();
            userPackageModel.Package.Package_Name        = userPackage.Package.Package_Name;
            userPackageModel.Package.Package_Description = userPackage.Package.Package_Description;


            userPackageModel.Services = new List <CarServiceViewModel>();

            var ServiceList = userPackage.Package.Package_Services.Select(s => s.Service).ToList();

            foreach (var service in ServiceList)
            {
                CarServiceViewModel serviceModel = new CarServiceViewModel();
                serviceModel.ServiceID    = service.ServiceID;
                serviceModel.Service_Name = service.Service_Name;
                userPackageModel.Services.Add(serviceModel);
            }

            if (userPackage.UserPackagesAddons.Count > 0)
            {
                foreach (var userPackagesAddon in userPackage.UserPackagesAddons.Where(a => a.NextServiceDate == userPackage.NextServiceDate).ToList())
                {
                    CarServiceViewModel serviceModel = new CarServiceViewModel();
                    serviceModel.ServiceID    = userPackagesAddon.Service.ServiceID;
                    serviceModel.Service_Name = userPackagesAddon.Service.Service_Name;
                    serviceModel.IsAddOn      = true;
                    userPackageModel.Services.Add(serviceModel);
                }
            }


            // Available AddOns List

            /// Prepare Car Model
            ///

            userPackageModel.AvailableAddOns = new List <AddOnsServiceModel>();
            var addOnsService = db.Services.Where(s => s.IsAddOn).ToList();

            foreach (var addOns in addOnsService)
            {
                userPackageModel.AvailableAddOns.Add(new AddOnsServiceModel()
                {
                    ServiceID           = addOns.ServiceID,
                    Service_Name        = addOns.Service_Name,
                    Service_Description = addOns.Service_Description,
                    Service_Price       = addOns.Service_Price,
                });
            }

            cTime   = DateTime.Now;
            nTime   = Convert.ToDateTime(userPackage.NextServiceDate);
            dayDiff = 0;
            dayDiff = nTime.Subtract(cTime).TotalDays;
            userPackageModel.AddonsAvailableForEdit = dayDiff > 1 ? true : false;

            CarViewModel carModel = new CarViewModel();

            var item = db.CarUsers.Where(c => c.CarId == userPackage.CarId).SingleOrDefault();

            if (item == null)
            {
                return(RedirectToAction("Index"));
            }

            carModel               = new CarViewModel();
            carModel.AutoRenewal   = item.AutoRenewal;
            carModel.CarId         = item.CarId;
            carModel.Color         = item.Color;
            carModel.DisplayName   = item.DisplayName;
            carModel.GarageId      = item.GarageId;
            carModel.IsDeleted     = item.IsDeleted;
            carModel.LicenseNumber = item.LicenseNumber;
            carModel.Make          = item.Make;
            carModel.PurchaseYear  = item.PurchaseYear;
            //carModel.Type = item.Type; //comment by circus
            carModel.UserId = item.UserId;

            // carModel.CarType = item.CarType.Description; //comment by circus
            if (item.Garage != null)
            {
                carModel.Garage = item.Garage.Garage_Name;
            }

            userPackageModel.CarModel = carModel;


            /// Prepare Payments Historys
            var paypalAutoPaymentList = db.PaypalAutoPayments.Where(p => p.UserPackageID == id && p.IsPaid == true).ToList();

            if (paypalAutoPaymentList.Count > 0)
            {
                foreach (var payment in paypalAutoPaymentList)
                {
                    PaypalAutoPaymentsViewModel paymentViewModel = new PaypalAutoPaymentsViewModel();
                    paymentViewModel.Id              = payment.Id;
                    paymentViewModel.ReferenceID     = payment.ReferenceID;
                    paymentViewModel.TrasactionID    = payment.TrasactionID;
                    paymentViewModel.TransactionDate = payment.TransactionDate;
                    paymentViewModel.GrossAmount     = payment.GrossAmount;
                    paymentViewModel.CreatedOn       = payment.CreatedOn;
                    paymentViewModel.ServiceDate     = payment.ServiceDate;
                    userPackageModel.PaymentHistorys.Add(paymentViewModel);
                }

                var NextPaymentPaid = paypalAutoPaymentList.FirstOrDefault(p => p.ServiceDate == userPackage.NextServiceDate);
                userPackageModel.AddonsAvailableForEdit = NextPaymentPaid == null ? true : false;
            }

            return(View(userPackageModel));
        }
Ejemplo n.º 2
0
        // Added By circus
        public ActionResult SubscribePackage(int packageid, int cartype = 0)
        {
            //Check the car type and Pakcage of user may be later
            UserPackageAddOnViewModel packageDetails = new UserPackageAddOnViewModel();

            packageDetails.SubscriptionTypeId = 1;
            if (Session["SelectedCar"] != null)
            {
                var car = Session["SelectedCar"] as CarUser;

                packageDetails.SelectedCar = car.CarId.ToString();
                ViewBag.SelectedCarName    = car.DisplayName;
            }


            var userid = User.Identity.GetUserId();

            var carUserList        = db.CarUsers.Where(a => a.UserId == userid);
            var packageCarUserList = db.UserPackages.Where(a => a.UserId == userid && a.PaymentRecieved == true).Select(a => a.CarId).ToList();
            var list = new List <CarUser>();

            foreach (var carUser in carUserList)
            {
                if (!packageCarUserList.Contains(carUser.CarId))
                {
                    list.Add(carUser);
                }
            }

            packageDetails.UserCars = list;

            int latestCar = list.OrderByDescending(a => a.CarId).Select(a => a.CarId).FirstOrDefault();

            ViewBag.LatestCar = latestCar;
            //Store packageid in view
            packageDetails.PackageID = packageid;
            if (packageid == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            else
            {
                var package = db.Packages.Where(a => a.PackageId == packageid).FirstOrDefault();
                if (package == null)
                {
                    return(HttpNotFound());
                }
                packageDetails.Packages = package;
                packageDetails.Services = db.Services.Where(s => s.IsAddOn == true).ToList();
            }

            if (Session["NewServiceGarageId"] != null)
            {
                int garageId = 0;
                int.TryParse(Convert.ToString(Session["NewServiceGarageId"]), out garageId);
                if (garageId > 0)
                {
                    packageDetails.GarageId = garageId;
                    var garage = db.Garages.Where(i => i.GarageId == garageId).SingleOrDefault();
                    if (garage != null)
                    {
                        var serviceDays = garage.ServiceDays.Split(',');
                        packageDetails.ServiceDay = serviceDays[0];
                        foreach (var day in serviceDays)
                        {
                            packageDetails.AvailableServiceDays.Add(new SelectListItem()
                            {
                                Text  = day,
                                Value = day
                            });
                        }
                    }

                    // prepare Time Slots List
                    var defaultFirstDay  = packageDetails.AvailableServiceDays.FirstOrDefault();
                    var userPackagesList = db.UserPackages.Where(a => a.UserId == userid && a.PaymentRecieved == true && a.IsActive == true).ToList();
                    if (defaultFirstDay != null)
                    {
                        var garageTimeSlotList = db.GargesTimeingSlots.Where(g => g.GarageId == garageId).ToList();
                        foreach (var timeSlot in garageTimeSlotList)
                        {
                            var userPackageByTimeSlot = userPackagesList.Where(u => u.GaragesTimeingSlotId == timeSlot.Id && u.ServiceDay == defaultFirstDay.Text).FirstOrDefault();
                            if (userPackageByTimeSlot != null)
                            {
                                continue;
                            }

                            packageDetails.AvailableGaragesTimeingSlots.Add(new SelectListItem()
                            {
                                Text  = timeSlot.SlotTimeing,
                                Value = timeSlot.Id.ToString()
                            });
                        }
                    }

                    var package = db.Packages.Where(a => a.PackageId == packageid).FirstOrDefault();
                    if (package == null)
                    {
                        return(HttpNotFound());
                    }

                    var SubscriptionTypeArray = package.SubscriptionTypes.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    var SubsscriptionInfoList = SubscriptionTypeInfo.GetSubscriptionTypeList();

                    foreach (var item in SubsscriptionInfoList)
                    {
                        if (SubscriptionTypeArray.Contains(item.Value))
                        {
                            packageDetails.AvailableSubscriptionTypes.Add(item);
                        }
                    }


                    //packageDetails.AvailableSubscriptionTypes.Add(new SelectListItem()
                    //{
                    //    Text = "Bi-Weekly",
                    //    Value = "2"
                    //});
                    //packageDetails.AvailableSubscriptionTypes.Add(new SelectListItem()
                    //{
                    //    Text = "Monthly",
                    //    Value = "3"
                    //});
                }
            }

            return(View(packageDetails));
        }
Ejemplo n.º 3
0
        // GET: Packages/Details/5
        // GET: UserPackages/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserPackage userPackage = db.UserPackages.Find(id);

            if (userPackage == null)
            {
                return(HttpNotFound());
            }

            UserPackageDetailViewModel userPackageModel = new UserPackageDetailViewModel();

            userPackageModel.Id               = userPackage.Id;
            userPackageModel.ActualPrice      = userPackage.ActualPrice;
            userPackageModel.TotalPrice       = userPackage.TotalPrice;
            userPackageModel.TaxAmount        = userPackage.TaxAmount;
            userPackageModel.TipAmount        = userPackage.TipAmount;
            userPackageModel.ServiceDay       = userPackage.ServiceDay;
            userPackageModel.TimeSlot         = userPackage.GaragesTimeingSlotId.HasValue ? userPackage.GargesTimeingSlot.SlotTimeing : "";
            userPackageModel.SubscribedDate   = userPackage.SubscribedDate;
            userPackageModel.SubscriptionType = SubscriptionTypeInfo.GetSubscriptionTypeInfo(userPackage.SubscriptionTypeId);

            userPackageModel.Package = new PackageDetailViewModel();
            userPackageModel.Package.Package_Name        = userPackage.Package.Package_Name;
            userPackageModel.Package.Package_Description = userPackage.Package.Package_Description;


            userPackageModel.Services = new List <PackageCarServiceViewModel>();

            var ServiceList = userPackage.Package.Package_Services.Select(s => s.Service).ToList();

            foreach (var service in ServiceList)
            {
                PackageCarServiceViewModel serviceModel = new PackageCarServiceViewModel();
                serviceModel.Service_Name = service.Service_Name;
                userPackageModel.Services.Add(serviceModel);
            }

            if (userPackage.UserPackagesAddons.Count > 0)
            {
                foreach (var userPackagesAddon in userPackage.UserPackagesAddons)
                {
                    PackageCarServiceViewModel serviceModel = new PackageCarServiceViewModel();
                    serviceModel.Service_Name = userPackagesAddon.Service.Service_Name;
                    serviceModel.IsAddOn      = true;
                    serviceModel.ServiceDate  = userPackagesAddon.NextServiceDate;
                    userPackageModel.Services.Add(serviceModel);
                }
            }

            /// Prepare Car Model
            ///
            PackageCarViewModel carModel = new PackageCarViewModel();

            var item = db.CarUsers.Where(c => c.CarId == userPackage.CarId).SingleOrDefault();

            if (item == null)
            {
                return(RedirectToAction("Index"));
            }

            userPackageModel.CarId = item.CarId;

            carModel               = new PackageCarViewModel();
            carModel.AutoRenewal   = item.AutoRenewal;
            carModel.CarId         = item.CarId;
            carModel.Color         = item.Color;
            carModel.DisplayName   = item.DisplayName;
            carModel.GarageId      = item.GarageId;
            carModel.IsDeleted     = item.IsDeleted;
            carModel.LicenseNumber = item.LicenseNumber;
            carModel.Make          = item.Make;
            carModel.PurchaseYear  = item.PurchaseYear;
            //carModel.Type = item.Type; //comment by circus
            carModel.UserId = item.UserId;

            // carModel.CarType = item.CarType.Description; //comment by circus
            if (item.Garage != null)
            {
                carModel.Garage = item.Garage.Garage_Name;
            }

            userPackageModel.CarModel = carModel;


            /// Prepare Payments Historys
            var paypalAutoPaymentList = db.PaypalAutoPayments.Where(p => p.UserPackageID == id && p.IsPaid == true).ToList();

            if (paypalAutoPaymentList.Count > 0)
            {
                foreach (var payment in paypalAutoPaymentList)
                {
                    PaypalAutoPaymentsViewModel paymentViewModel = new PaypalAutoPaymentsViewModel();
                    paymentViewModel.Id              = payment.Id;
                    paymentViewModel.ReferenceID     = payment.ReferenceID;
                    paymentViewModel.TrasactionID    = payment.TrasactionID;
                    paymentViewModel.TransactionDate = payment.TransactionDate;
                    paymentViewModel.GrossAmount     = payment.GrossAmount;
                    paymentViewModel.CreatedOn       = payment.CreatedOn;
                    paymentViewModel.ServiceDate     = payment.ServiceDate;
                    userPackageModel.PaymentHistorys.Add(paymentViewModel);
                }
            }

            return(View(userPackageModel));
        }