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