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));
        }
Esempio n. 2
0
        public Tbl_Wallet Set_Credit(int user, int credit)
        {
            Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == user).SingleOrDefault();

            _Wallet.Wallet_Credit = credit;

            return(_Wallet);
        }
Esempio n. 3
0
        public ActionResult Pay(Model_PurchasePay model)
        {
            if (ModelState.IsValid)
            {
                var _User = db.Tbl_User.Where(x => x.User_IsDelete == false && x.User_Mobile == User.Identity.Name).SingleOrDefault();

                if (_User != null)
                {
                    switch ((ProductType)model.Type)
                    {
                    case ProductType.Workshop:

                        if (db.Tbl_UserWorkshopPlan.Where(x => x.UWP_UserID == _User.User_ID && x.UWP_WPID == model.ID && x.UWP_IsDelete == false).FirstOrDefault() != null)
                        {
                            TempData["TosterState"]   = "info";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "کارگاه مورد نظر قبلا خریداری شده است";

                            return(RedirectToAction("Index"));
                        }
                        ;

                        var _WorkshopPlan = db.Tbl_WorkshopPlan.Where(x => x.WP_ID == model.ID).SingleOrDefault();

                        if (_WorkshopPlan != null)
                        {
                            if (_WorkshopPlan.WP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "info";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت کارگاه مورد نظر پر شده است";

                                return(RedirectToAction("Index"));
                            }

                            bool        smsResult = true;
                            Tbl_Payment _Payment  = Purchase(_User, _WorkshopPlan.WP_Cost, (ProductType)model.Type, out bool walletResult, ref smsResult);

                            if (_Payment != null)
                            {
                                if (!walletResult)
                                {
                                    TempData["TosterState"]   = "error";
                                    TempData["TosterType"]    = TosterType.Maseage;
                                    TempData["TosterMassage"] = "موجودی کیف پول شما کافی نمی باشد";

                                    return(RedirectToAction("Index"));
                                }

                                db.Tbl_Payment.Add(_Payment);

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

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

                                Tbl_UserWorkshopPlan _UserWorkshopPlan = new Tbl_UserWorkshopPlan()
                                {
                                    UWP_Guid         = Guid.NewGuid(),
                                    UWP_UserID       = _User.User_ID,
                                    UWP_WPID         = model.ID,
                                    UWP_IsActive     = true,
                                    Tbl_Payment      = _Payment,
                                    UWP_CreationDate = DateTime.Now,
                                    UWP_ModifiedDate = DateTime.Now
                                };

                                db.Tbl_UserWorkshopPlan.Add(_UserWorkshopPlan);

                                _WorkshopPlan.WP_Capacity -= 1;

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

                                if (Convert.ToBoolean(db.SaveChanges() > 0))
                                {
                                    if (!smsResult)
                                    {
                                        TempData["TosterState"]   = "warning";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "خطا در ارسال پیامک";
                                    }
                                    else
                                    {
                                        TempData["TosterState"]   = "success";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "کارگاه مورد نظر با موفقیت خریداری شد";
                                    }

                                    return(RedirectToAction("Index"));
                                }

                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "کارگاه مورد نظر با موفقیت خریداری نشد";
                            }
                            else
                            {
                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "کارگاه مورد نظر با موفقیت خریداری نشد";
                            }

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                    case ProductType.Class:

                        Tbl_UserClassPlan _UserClassPlan = db.Tbl_UserClassPlan.Where(x => x.UCP_UserID == _User.User_ID && x.UCP_CPID == model.ID).FirstOrDefault();

                        if (_UserClassPlan != null && !_UserClassPlan.UCP_IsDelete)
                        {
                            TempData["TosterState"]   = "info";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "کلاس مورد نظر قبلا خریداری شده است و هم اکنون فعال یا در انتظار تایید می باشد";

                            return(RedirectToAction("Index"));
                        }
                        ;

                        var _ClassPlan = db.Tbl_ClassPlan.Where(x => x.CP_ID == model.ID).SingleOrDefault();

                        if (_ClassPlan != null)
                        {
                            if (_ClassPlan.CP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "info";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت کلاس مورد نظر پر شده است";

                                return(RedirectToAction("Index"));
                            }

                            bool        smsResult = true;
                            Tbl_Payment _Payment  = Purchase(_User, _ClassPlan.CP_CostPerSession, (ProductType)model.Type, out bool walletResult, ref smsResult);

                            if (_Payment != null)
                            {
                                db.Tbl_Payment.Add(_Payment);

                                if (_UserClassPlan != null)
                                {
                                    _UserClassPlan.UCP_IsDelete     = false;
                                    _UserClassPlan.UCP_ModifiedDate = DateTime.Now;
                                    _UserClassPlan.Tbl_Payment      = _Payment;

                                    db.Entry(_UserClassPlan).State = EntityState.Modified;
                                }
                                else
                                {
                                    _UserClassPlan = new Tbl_UserClassPlan()
                                    {
                                        UCP_Guid         = Guid.NewGuid(),
                                        UCP_UserID       = _User.User_ID,
                                        UCP_CPID         = model.ID,
                                        Tbl_Payment      = _Payment,
                                        UCP_CreationDate = DateTime.Now,
                                        UCP_ModifiedDate = DateTime.Now
                                    };

                                    db.Tbl_UserClassPlan.Add(_UserClassPlan);
                                }

                                _ClassPlan.CP_Capacity -= 1;

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

                                if (Convert.ToBoolean(db.SaveChanges() > 0))
                                {
                                    if (!smsResult)
                                    {
                                        TempData["TosterState"]   = "warning";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "خطا در ارسال پیامک";
                                    }
                                    else
                                    {
                                        TempData["TosterState"]   = "success";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "درخواست خرید کلاس مورد نظر با موفقیت ارسال شد";
                                    }

                                    return(RedirectToAction("Index"));
                                }

                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "درخواست خرید کلاس مورد نظر با موفقیت ارسال نشد";
                            }
                            else
                            {
                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "درخواست خرید کلاس مورد نظر با موفقیت ارسال نشد";
                            }

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                    case ProductType.ExamInPerson:

                        if (db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_UserID == _User.User_ID && x.UEIPP_EIPPID == model.ID && x.UEIPP_IsDelete == false).FirstOrDefault() != null)
                        {
                            TempData["TosterState"]   = "info";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "آزمون مورد نظر قبلا خریداری شده است";

                            return(RedirectToAction("Index"));
                        }
                        ;

                        var _ExamInPersonPlan = db.Tbl_ExamInPersonPlan.Where(x => x.EIPP_ID == model.ID).SingleOrDefault();

                        if (_ExamInPersonPlan != null)
                        {
                            if (_ExamInPersonPlan.EIPP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "info";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت آزمون مورد نظر پر شده است";

                                return(RedirectToAction("Index"));
                            }

                            bool        smsResult = true;
                            Tbl_Payment _Payment  = Purchase(_User, _ExamInPersonPlan.EIPP_Cost, (ProductType)model.Type, out bool walletResult, ref smsResult);

                            if (_Payment != null)
                            {
                                if (!walletResult)
                                {
                                    TempData["TosterState"]   = "error";
                                    TempData["TosterType"]    = TosterType.Maseage;
                                    TempData["TosterMassage"] = "موجودی کیف پول شما کافی نمی باشد";

                                    return(RedirectToAction("Index"));
                                }

                                db.Tbl_Payment.Add(_Payment);

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

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

                                Tbl_UserExamInPersonPlan _UserExamInPersonPlan = new Tbl_UserExamInPersonPlan()
                                {
                                    UEIPP_Guid         = Guid.NewGuid(),
                                    UEIPP_UserID       = _User.User_ID,
                                    UEIPP_EIPPID       = model.ID,
                                    UEIPP_SeatNumber   = new Random().Next(10000, 99999),
                                    Tbl_Payment        = _Payment,
                                    UEIPP_CreationDate = DateTime.Now,
                                    UEIPP_ModifiedDate = DateTime.Now
                                };

                                db.Tbl_UserExamInPersonPlan.Add(_UserExamInPersonPlan);

                                _ExamInPersonPlan.EIPP_Capacity -= 1;

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

                                if (Convert.ToBoolean(db.SaveChanges() > 0))
                                {
                                    if (!smsResult)
                                    {
                                        TempData["TosterState"]   = "warning";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "خطا در ارسال پیامک";
                                    }
                                    else
                                    {
                                        TempData["TosterState"]   = "success";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری شد";
                                    }

                                    return(RedirectToAction("Index"));
                                }

                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                            }
                            else
                            {
                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                            }

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                    case ProductType.ExamRemotely:

                        //if (db.Tbl_UserExamRemotelyPlan.Where(x => x.UERP_UserID == _User.User_ID && x.UERP_ERPID == model.ID && x.UERP_IsDelete == false).FirstOrDefault() != null)
                        //{
                        //    TempData["TosterState"] = "info";
                        //    TempData["TosterType"] = TosterType.Maseage;
                        //    TempData["TosterMassage"] = "آزمون مورد نظر قبلا خریداری شده است";

                        //    return RedirectToAction("Index");
                        //};

                        //var _ExamRemotelyPlan = db.Tbl_ExamRemotelyPlan.Where(x => x.ERP_ID == model.ID).SingleOrDefault();

                        //if (_ExamRemotelyPlan != null)
                        //{
                        //    if (_ExamRemotelyPlan.ERP_Capacity <= 0)
                        //    {
                        //        TempData["TosterState"] = "info";
                        //        TempData["TosterType"] = TosterType.Maseage;
                        //        TempData["TosterMassage"] = "ظرفیت آزمون مورد نظر پر شده است";

                        //        return RedirectToAction("Index");
                        //    }

                        //    bool smsResult = true;
                        //    Tbl_Payment _Payment = Purchase(_User, _ExamRemotelyPlan.cost, (ProductType)model.Type, out bool walletResult, ref smsResult);

                        //    if (_Payment != null)
                        //    {
                        //        if (!walletResult)
                        //        {
                        //            TempData["TosterState"] = "error";
                        //            TempData["TosterType"] = TosterType.Maseage;
                        //            TempData["TosterMassage"] = "موجودی کیف پول شما کافی نمی باشد";

                        //            return RedirectToAction("Index");
                        //        }

                        //        db.Tbl_Payment.Add(_Payment);

                        //        Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                        //        _Wallet.Wallet_Credit = _Payment.Payment_RemaingWallet - _Payment.Payment_Cost;
                        //        _Wallet.Wallet_ModifiedDate = DateTime.Now;

                        //        Tbl_UserExamRemotelyPlan _UserExamRemotelyPlan = new Tbl_UserExamRemotelyPlan()
                        //        {
                        //            UCP_Guid = Guid.NewGuid(),
                        //            UCP_UserID = _User.User_ID,
                        //            UCP_CPID = model.ID,
                        //            Tbl_Payment = _Payment,
                        //            UCP_CreationDate = DateTime.Now,
                        //            UCP_ModifiedDate = DateTime.Now
                        //        };

                        //        db.Tbl_UserExamRemotelyPlan.Add(_UserExamRemotelyPlan);

                        //        _ExamRemotelyPlan.ERP_Capacity -= 1;

                        //        db.Entry(_ExamRemotelyPlan).State = EntityState.Modified;

                        //        if (Convert.ToBoolean(db.SaveChanges() > 0))
                        //        {
                        //            if (!smsResult)
                        //            {
                        //                TempData["TosterState"] = "warning";
                        //                TempData["TosterType"] = TosterType.Maseage;
                        //                TempData["TosterMassage"] = "خطا در ارسال پیامک";
                        //            }
                        //            else
                        //            {
                        //                TempData["TosterState"] = "success";
                        //                TempData["TosterType"] = TosterType.Maseage;
                        //                TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری شد";
                        //            }

                        //            return RedirectToAction("Index");
                        //        }

                        //        TempData["TosterState"] = "error";
                        //        TempData["TosterType"] = TosterType.Maseage;
                        //        TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                        //    }
                        //    else
                        //    {
                        //        TempData["TosterState"] = "error";
                        //        TempData["TosterType"] = TosterType.Maseage;
                        //        TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                        //    }

                        //    return RedirectToAction("Index");
                        //}
                        //else
                        //{
                        //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                        //}

                        break;

                    default:
                        return(HttpNotFound());
                    }
                }

                return(HttpNotFound());
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
        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));
        }
        public ActionResult Create(Model_UserExamInPersonPlanCreate model)
        {
            if (ModelState.IsValid)
            {
                var _User = db.Tbl_User.Where(x => x.User_Guid == model.UserGuid && x.User_IsDelete == false).SingleOrDefault();

                if (db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_UserID == _User.User_ID && x.UEIPP_EIPPID == model.ExamID && x.UEIPP_IsDelete == false).FirstOrDefault() != null)
                {
                    TempData["TosterState"]   = "info";
                    TempData["TosterType"]    = TosterType.Maseage;
                    TempData["TosterMassage"] = "آزمون مورد نظر قبلا خریداری شده است";

                    return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                }
                ;

                var _ExamInPersonPlan = db.Tbl_ExamInPersonPlan.Where(x => x.EIPP_ID == model.ExamID).SingleOrDefault();

                if (_ExamInPersonPlan != null)
                {
                    bool        smsResult = true;
                    Tbl_Payment _Payment  = Purchase(_User, _ExamInPersonPlan.EIPP_Cost, ProductType.ExamInPerson, out bool walletResult, ref smsResult);

                    if (_Payment != null)
                    {
                        db.Tbl_Payment.Add(_Payment);

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

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

                        Tbl_UserExamInPersonPlan _UserExamInPersonPlan = new Tbl_UserExamInPersonPlan
                        {
                            UEIPP_Guid         = Guid.NewGuid(),
                            UEIPP_UserID       = new Rep_User().Get_UserIDWithGUID(model.UserGuid),
                            UEIPP_EIPPID       = model.ExamID,
                            UEIPP_SeatNumber   = 0,
                            Tbl_Payment        = _Payment,
                            UEIPP_IsActive     = true,
                            UEIPP_CreationDate = DateTime.Now,
                            UEIPP_ModifiedDate = DateTime.Now
                        };

                        db.Tbl_UserExamInPersonPlan.Add(_UserExamInPersonPlan);

                        _ExamInPersonPlan.EIPP_Capacity -= 1;

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

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

                            //    return RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID });
                            //}

                            if (!walletResult && !smsResult)
                            {
                                TempData["TosterState"]   = "warning";
                                TempData["TosterType"]    = TosterType.WithTitel;
                                TempData["TosterTitel"]   = "خطا در ارسال پیامک";
                                TempData["TosterMassage"] = "کمبود موجودی کیف پول کاربر";
                            }
                            else if (!walletResult)
                            {
                                TempData["TosterState"]   = "warning";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "کمبود موجودی کیف پول کاربر";
                            }
                            else if (!smsResult)
                            {
                                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 = model.ExamID }));
                        }

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

                        return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                    }
                    else
                    {
                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد";

                        return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                    }
                }
                else
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
Esempio n. 6
0
        public ActionResult _Register(Model_Register model)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Dashboard", "Dashboard"));
            }

            if (!ModelState.IsValid)
            {
                return(View("Register", model));
            }


            Tbl_User _User = new Tbl_User();

            _User.User_Guid           = Guid.NewGuid();
            _User.User_Email          = model.Email;
            _User.User_FirstName      = model.Name;
            _User.User_lastName       = model.Family;
            _User.User_Mobile         = model.Mobile;
            _User.User_IdentityNumber = model.IdentityNumber;
            _User.User_RoleID         = 1;
            _User.User_GenderCodeID   = Rep_CodeGroup.Get_CodeIDWithGUID(Guid.Parse(model.Gender));

            var Salt              = Guid.NewGuid().ToString("N");
            var SaltPassword      = model.Password + Salt;
            var SaltPasswordBytes = Encoding.UTF8.GetBytes(SaltPassword);
            var SaltPasswordHush  = Convert.ToBase64String(SHA512.Create().ComputeHash(SaltPasswordBytes));

            _User.User_PasswordHash = SaltPasswordHush;
            _User.User_PasswordSalt = Salt;

            db.Tbl_User.Add(_User);

            Tbl_Wallet _Wallet = new Tbl_Wallet()
            {
                Wallet_Guid         = Guid.NewGuid(),
                Wallet_CreationDate = DateTime.Now,
                Wallet_ModifiedDate = DateTime.Now,
                Tbl_User            = _User
            };

            db.Tbl_Wallet.Add(_Wallet);

            if (Convert.ToBoolean(db.SaveChanges() > 0))
            {
                if (new SMSPortal().SendServiceable(model.Mobile, model.Mobile, model.Password, "", model.Name + " " + model.Family, SMSTemplate.Register) != "ارسال به مخابرات")
                {
                    TempData["TosterState"]   = "warning";
                    TempData["TosterType"]    = TosterType.Maseage;
                    TempData["TosterMassage"] = "خطا در ارسال پیامک";

                    return(RedirectToAction("Login"));
                }
                ;

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

                return(RedirectToAction("Login"));
            }
            else
            {
                TempData["TosterState"]   = "error";
                TempData["TosterType"]    = TosterType.Maseage;
                TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد";

                return(View());
            }
        }