Пример #1
0
        List <UserPackageViewModel> PrepareUserPackageList(List <UserPackage> userPackageList)
        {
            List <UserPackageViewModel> UserPackages = new List <UserPackageViewModel>();

            foreach (var item in userPackageList)
            {
                UserPackageViewModel userPackage = new UserPackageViewModel();
                userPackage.Id             = item.Id;
                userPackage.Ipaddress      = item.Ipaddress;
                userPackage.SubscribedDate = item.SubscribedDate;
                userPackage.CreatedDt      = item.CreatedDt;
                userPackage.CustomerName   = item.AspNetUser.Email;

                userPackage.Package              = new PackageViewModel();
                userPackage.Package.PackageId    = item.Package.PackageId;
                userPackage.Package.Package_Name = item.Package.Package_Name;
                userPackage.CarId = item.CarId;

                UserPackages.Add(userPackage);
            }

            return(UserPackages);
        }
        public async Task <ActionResult> UpgradePackageUser(UserPackageViewModel model)
        {
            try
            {
                //Nếu user đang online ko phải là user nâng cấp=>failse
                //hoặc user không phải là member thì không nâng cấp
                long CurrentUserId = long.Parse(User.Identity.GetUserId());
                if (CurrentUserId != model.UpgradeUID.Value || !User.IsInRole("Member"))
                {
                    return(RedirectToAction("AlertPage", "Extension", new { AlertString = "Không thể thực hiện nâng cấp với gói cước này bạn " +
                                                                                          "không phải là thành viên hoặc gói cước mới không hợp lệ", link = "" }));
                }
                User    ObjUser       = cms_db.GetObjUserByIdNoAsync(model.UpgradeUID.Value);
                Package ObjNewPackage = cms_db.GetObjPackage(model.PackageId.Value);
                Package ObjOldPackage = new Package();
                if (ObjUser.PackageId.HasValue)
                {
                    ObjOldPackage = cms_db.GetObjPackage(ObjUser.PackageId.Value);
                }
                else
                {
                    //1 là package free
                    ObjOldPackage = cms_db.GetObjPackage(1);
                }


                if (ObjNewPackage.PackageId > ObjOldPackage.PackageId || ObjNewPackage.PackageId == ObjOldPackage.PackageId)
                {
                    UserPackage objUserPackage = new UserPackage();

                    objUserPackage.OldPackageID    = ObjOldPackage.PackageId;
                    objUserPackage.OldPackageName  = ObjOldPackage.PackageName;
                    objUserPackage.CrtdDT          = DateTime.Now;
                    objUserPackage.PackageId       = ObjNewPackage.PackageId;
                    objUserPackage.PackageName     = ObjNewPackage.PackageName;
                    objUserPackage.UpgradeUID      = ObjUser.Id;
                    objUserPackage.UpgradeUserName = ObjUser.EMail;
                    objUserPackage.StateId         = (int)EnumCore.StateType.cho_duyet;
                    objUserPackage.StateName       = "Chờ duyệt";
                    objUserPackage.UpgradeToken    = model.UpgradeToken;
                    objUserPackage.Price           = model.TotalPrice;
                    if (model.TotalDay.HasValue)
                    {
                        objUserPackage.NumDay = model.TotalDay.Value;
                    }
                    else
                    {
                        objUserPackage.NumDay = 0;
                    }

                    cms_db.CreateUserPackage(objUserPackage);

                    ObjUser.AwaitPackageId   = ObjNewPackage.PackageId;
                    ObjUser.AwaitPackageName = ObjNewPackage.PackageName;

                    int rs = await cms_db.UpdateUser(ObjUser);

                    return(RedirectToAction("AlertPage", "Extension",
                                            new { AlertString = "Đã thực hiện nâng cấp vui lòng chờ xét duyệt", link = "", type = (int)EnumCore.AlertPageType.FullScrenn }));
                }
                else
                {
                    return(RedirectToAction("AlertPage", "Extension",
                                            new { AlertString = "Không thể thực hiện nâng cấp với gói cước này do gói " +
                                                                "cước mới không hợp lệ", link = "", type = (int)EnumCore.AlertPageType.FullScrenn }));
                }
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("UpgradePackageUser", "PackageManager", e.ToString(), long.Parse(User.Identity.GetUserId()));
                return(RedirectToAction("AlertPage", "Extension", new { AlertString = "Không thể thực hiện nâng cấp với gói cước" +
                                                                                      " này do có lỗi xảy ra trong quá trình nâng cấp", link = "", type = (int)EnumCore.AlertPageType.FullScrenn }));
            }
        }
        public ActionResult ConfirmUpgrade(long UserId, long PackageId, int PackageTimeType)
        {
            try
            {
                long CurrentUserId = long.Parse(User.Identity.GetUserId());
                //Nếu user đang online ko phải là user nâng cấp=>failse
                //hoặc user không phải là member thì không nâng cấp
                if (CurrentUserId != UserId || !User.IsInRole("Member"))
                {
                    return(RedirectToAction("AlertPage", "Extension",
                                            new { AlertString = "Không thể thực hiện nâng cấp với gói cước này bạn " +
                                                                "không phải là thành viên hoặc gói cước mới không hợp lệ", link = "", type = (int)EnumCore.AlertPageType.FullScrenn }));
                }
                User ObjUser = cms_db.GetObjUserByIdNoAsync(UserId);

                Package ObjOldPackage = new Package();
                //nếu gói cước của user là null hoặc = 1 là free
                if (ObjUser.PackageId.HasValue)
                {
                    ObjOldPackage = cms_db.GetObjPackage(ObjUser.PackageId.Value);
                }
                else
                {
                    //1 là package free
                    ObjOldPackage = cms_db.GetObjPackage(1);
                }

                UserPackageViewModel model = new UserPackageViewModel();
                Package ObjNewPackage      = cms_db.GetObjPackage(PackageId);

                //nếu gói cước mới lớn hơn hoặc bằng thì cho nâng cấp
                if (ObjNewPackage.PackageId > ObjOldPackage.PackageId || ObjNewPackage.PackageId == ObjOldPackage.PackageId)
                {
                    model.ObjPackage      = ObjNewPackage;
                    model.ObjUser         = ObjUser;
                    model.PackageName     = ObjNewPackage.PackageName;
                    model.UpgradeUID      = ObjUser.Id;
                    model.UpgradeUserName = ObjUser.EMail;
                    model.CrtdDT          = DateTime.Now;
                    if (PackageTimeType == (int)EnumCore.PackageTimeType.thang)
                    {
                        model.TotalPrice = ObjNewPackage.NewPrice.Value;
                        model.TotalDay   = 30;
                    }

                    if (PackageTimeType == (int)EnumCore.PackageTimeType.quy)
                    {
                        model.TotalPrice = ObjNewPackage.NewPrice3M.Value;
                        model.TotalDay   = 90;
                    }

                    if (PackageTimeType == (int)EnumCore.PackageTimeType.vinhvien)
                    {
                        model.TotalPrice = ObjNewPackage.ForeverPrice.Value;
                    }

                    string coderandom = DateTime.UtcNow.Ticks.ToString();
                    model.UpgradeToken = coderandom;
                    return(View(model));
                }
                else
                {
                    return(RedirectToAction("AlertPage", "Extension",
                                            new { AlertString = "Không thể thực hiện nâng cấp với gói cước này do gói cước mới không hợp lệ", link = "", type = (int)EnumCore.AlertPageType.FullScrenn }));
                }
            }
            catch (Exception e)
            {
                cms_db.AddToExceptionLog("ConfirmUpdate", "PackageManager", e.ToString(), long.Parse(User.Identity.GetUserId()));
                return(RedirectToAction("AlertPage", "Extension",
                                        new { AlertString = "Không thể thực hiện nâng cấp với gói cước này do có" +
                                                            " lỗi xảy ra trong quá trình nâng cấp", link = "", type = (int)EnumCore.AlertPageType.FullScrenn }));
            }
        }
Пример #4
0
        public ActionResult Edit(int id)
        {
            CarViewModel carModel = new CarViewModel();

            var item = db.CarUsers.Where(c => c.CarId == id).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;
            }

            if (item.UserPackages.Count > 0)
            {
                var UserPackagesList = item.UserPackages.Where(i => i.PaymentRecieved == true).ToList();
                if (UserPackagesList.Count > 0)
                {
                    carModel.UserPackages = new List <UserPackageViewModel>();
                    foreach (var userPackage in UserPackagesList)
                    {
                        UserPackageViewModel userPackageModel = new UserPackageViewModel();
                        userPackageModel.Id             = userPackage.Id;
                        userPackageModel.ActualPrice    = userPackage.ActualPrice;
                        userPackageModel.TotalPrice     = userPackage.TotalPrice;
                        userPackageModel.TipAmount      = userPackage.TipAmount;
                        userPackageModel.ServiceDay     = userPackage.ServiceDay;
                        userPackageModel.TimeSlot       = userPackage.GaragesTimeingSlotId.HasValue ? userPackage.GargesTimeingSlot.SlotTimeing : "";
                        userPackageModel.SubscribedDate = userPackage.SubscribedDate;

                        userPackageModel.Package = new PackageViewModel();
                        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.Service_Name = service.Service_Name;
                            userPackageModel.Services.Add(serviceModel);
                        }

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



                        /// Prepare Payments Historys
                        var paypalAutoPaymentList = db.PaypalAutoPayments.Where(p => p.UserPackageID == userPackage.Id).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.IsPaid          = payment.IsPaid;
                                paymentViewModel.PaymentStatus   = payment.PaymentStatus;
                                paymentViewModel.GrossAmount     = payment.GrossAmount;
                                paymentViewModel.CreatedOn       = payment.CreatedOn;
                                paymentViewModel.ServiceDate     = payment.ServiceDate;
                                userPackageModel.PaymentHistorys.Add(paymentViewModel);
                            }
                        }

                        carModel.UserPackages.Add(userPackageModel);
                    }
                }
            }



            return(View(carModel));
        }