コード例 #1
0
        public ActionResult UnRegister(Model_Message model)
        {
            if (ModelState.IsValid)
            {
                var _UserExamInPersonPlan = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault();

                if (_UserExamInPersonPlan != null)
                {
                    var _Payment = db.Tbl_Payment.Where(x => x.Payment_ID == _UserExamInPersonPlan.UEIPP_PaymentID).SingleOrDefault();

                    if (_Payment != null)
                    {
                        int newCredit = new Rep_Wallet().Get_WalletCreditWithUserID(_Payment.Payment_UserID) + _Payment.Payment_Cost;

                        _Payment.Payment_StateCodeID   = (int)PaymentState.Rejected;
                        _Payment.Payment_WayCodeID     = (int)PaymentWay.Internet;
                        _Payment.Payment_RemaingWallet = newCredit;
                        _Payment.Payment_ModifiedDate  = DateTime.Now;

                        db.Entry(_Payment).State = EntityState.Modified;

                        Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                        _Wallet.Wallet_Credit       = newCredit;
                        _Wallet.Wallet_ModifiedDate = DateTime.Now;

                        db.Entry(_Wallet).State = EntityState.Modified;

                        _UserExamInPersonPlan.UEIPP_IsActive     = false;
                        _UserExamInPersonPlan.UEIPP_ModifiedDate = DateTime.Now;
                        _UserExamInPersonPlan.Tbl_ExamInPersonPlan.EIPP_Capacity += 1;

                        db.Entry(_UserExamInPersonPlan).State = EntityState.Modified;

                        if (Convert.ToBoolean(db.SaveChanges() > 0))
                        {
                            TempData["TosterState"]   = "success";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "ثبت نام کاربر مورد نظر با موفقیت لغو شد";

                            return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault().UEIPP_EIPPID }));
                        }

                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام کاربر مورد نظر با موفقیت لغو نشد";

                        return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault().UEIPP_EIPPID }));
                    }
                }

                TempData["TosterState"]   = "error";
                TempData["TosterType"]    = TosterType.Maseage;
                TempData["TosterMassage"] = "ثبت نام کاربر مورد نظر با موفقیت لغو نشد";

                return(HttpNotFound());
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
コード例 #2
0
        private Tbl_Payment Purchase(Tbl_User user, int cost, ProductType type, out bool walletResult, ref bool smsResult)
        {
            Tbl_Payment _Payment;
            int         credit = new Rep_Wallet().Get_WalletCreditWithUserID(user.User_ID);

            if (credit + 30000 < cost)
            {
                if (new SMSPortal().SendServiceable(user.User_Mobile, ".", "", "", user.User_FirstName + " " + user.User_lastName, SMSTemplate.Charge) != "ارسال به مخابرات")
                {
                    smsResult = false;
                }

                walletResult = false;
            }
            else
            {
                walletResult = true;
            }

            switch (type)
            {
            case ProductType.ExamInPerson:

                _Payment = new Tbl_Payment
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = user.User_ID,
                    Payment_TitleCodeID   = (int)PaymentTitle.ExamInPerson,
                    Payment_WayCodeID     = (int)PaymentWay.Internet,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = cost,
                    Payment_Discount      = 0,
                    Payment_RemaingWallet = credit - cost,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                return(_Payment);

            case ProductType.ExamRemotely:

                return(null);

            case ProductType.Workshop:

                _Payment = new Tbl_Payment
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = user.User_ID,
                    Payment_TitleCodeID   = (int)PaymentTitle.Workshop,
                    Payment_WayCodeID     = (int)PaymentWay.Internet,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = cost,
                    Payment_Discount      = 0,
                    Payment_RemaingWallet = credit - cost,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                return(_Payment);

            case ProductType.Class:

                _Payment = new Tbl_Payment
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = user.User_ID,
                    Payment_TitleCodeID   = (int)PaymentTitle.Class,
                    Payment_WayCodeID     = (int)PaymentWay.Internet,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = cost,
                    Payment_Discount      = 0,
                    Payment_RemaingWallet = credit,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                return(_Payment);

            default:
                return(null);
            }
        }
コード例 #3
0
        public ActionResult Register(Model_Message model)
        {
            if (ModelState.IsValid)
            {
                var _UserExamInPersonPlan = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault();

                if (_UserExamInPersonPlan != null)
                {
                    var _Payment = db.Tbl_Payment.Where(x => x.Payment_ID == _UserExamInPersonPlan.UEIPP_PaymentID).SingleOrDefault();

                    if (_Payment != null)
                    {
                        int credit    = new Rep_Wallet().Get_WalletCreditWithUserID(_Payment.Payment_UserID);
                        int newCredit = credit - _Payment.Payment_Cost;

                        _Payment.Payment_StateCodeID   = (int)PaymentState.Confirmed;
                        _Payment.Payment_WayCodeID     = (int)PaymentWay.Internet;
                        _Payment.Payment_RemaingWallet = newCredit;
                        _Payment.Payment_ModifiedDate  = DateTime.Now;

                        db.Entry(_Payment).State = EntityState.Modified;

                        Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                        _Wallet.Wallet_Credit       = newCredit;
                        _Wallet.Wallet_ModifiedDate = DateTime.Now;

                        db.Entry(_Wallet).State = EntityState.Modified;

                        _UserExamInPersonPlan.UEIPP_IsActive     = true;
                        _UserExamInPersonPlan.UEIPP_ModifiedDate = DateTime.Now;
                        _UserExamInPersonPlan.Tbl_ExamInPersonPlan.EIPP_Capacity -= 1;

                        db.Entry(_UserExamInPersonPlan).State = EntityState.Modified;

                        if (Convert.ToBoolean(db.SaveChanges() > 0))
                        {
                            //if (_UserExamInPersonPlan.Tbl_ExamInPersonPlan.EIPP_Capacity <= 0)
                            //{
                            //    TempData["TosterState"] = "warning";
                            //    TempData["TosterType"] = TosterType.Maseage;
                            //    TempData["TosterMassage"] = "ظرفیت آزمون مورد نظر پر شده است";

                            //    return RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault().UEIPP_EIPPID });
                            //}

                            if (credit + 30000 < _Payment.Payment_Cost)
                            {
                                if (new SMSPortal().SendServiceable(_Payment.Tbl_User.User_Mobile, ".", "", "", _Payment.Tbl_User.User_FirstName + " " + _Payment.Tbl_User.User_lastName, SMSTemplate.Charge) != "ارسال به مخابرات")
                                {
                                    TempData["TosterState"]   = "warning";
                                    TempData["TosterType"]    = TosterType.WithTitel;
                                    TempData["TosterTitel"]   = "خطا در ارسال پیامک";
                                    TempData["TosterMassage"] = "کمبود موجودی کیف پول کاربر";
                                }
                                else
                                {
                                    TempData["TosterState"]   = "warning";
                                    TempData["TosterType"]    = TosterType.Maseage;
                                    TempData["TosterMassage"] = "کمبود موجودی کیف پول کاربر";
                                }
                            }
                            else
                            {
                                TempData["TosterState"]   = "success";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ثبت نام کاربر مورد نظر با موفقیت انجام شد";
                            }

                            return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault().UEIPP_EIPPID }));
                        }

                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام کاربر مورد نظر با موفقیت انجام نشد";

                        return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_ID == model.ID).SingleOrDefault().UEIPP_EIPPID }));
                    }
                }

                TempData["TosterState"]   = "error";
                TempData["TosterType"]    = TosterType.Maseage;
                TempData["TosterMassage"] = "ثبت نام کاربر مورد نظر با موفقیت انجام نشد";

                return(HttpNotFound());
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }