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 Create(Model_UserWorkshopPlanCreate model) { if (ModelState.IsValid) { var _User = db.Tbl_User.Where(x => x.User_Guid == model.UserGuid && x.User_IsDelete == false).SingleOrDefault(); if (db.Tbl_UserWorkshopPlan.Where(x => x.UWP_UserID == _User.User_ID && x.UWP_WPID == model.WorkshopID && x.UWP_IsDelete == false).FirstOrDefault() != null) { TempData["TosterState"] = "info"; TempData["TosterType"] = TosterType.Maseage; TempData["TosterMassage"] = "کارگاه مورد نظر قبلا خریداری شده است"; return(RedirectToAction("Details", "Workshop", new { area = "Dashboard", id = model.WorkshopID })); } ; var _WorkshopPlan = db.Tbl_WorkshopPlan.Where(x => x.WP_ID == model.WorkshopID).SingleOrDefault(); if (_WorkshopPlan != null) { bool smsResult = true; Tbl_Payment _Payment = Purchase(_User, _WorkshopPlan.WP_Cost, ProductType.Workshop, 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_UserWorkshopPlan _UserWorkshopPlan = new Tbl_UserWorkshopPlan { UWP_Guid = Guid.NewGuid(), UWP_UserID = new Rep_User().Get_UserIDWithGUID(model.UserGuid), UWP_WPID = model.WorkshopID, Tbl_Payment = _Payment, UWP_IsActive = true, 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 (_WorkshopPlan.WP_Capacity <= 0) //{ // TempData["TosterState"] = "warning"; // TempData["TosterType"] = TosterType.Maseage; // TempData["TosterMassage"] = "ظرفیت کارگاه مورد نظر پر شده است"; // return RedirectToAction("Details", "Workshop", new { area = "Dashboard", id = model.WorkshopID }); //} 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", "Workshop", new { area = "Dashboard", id = model.WorkshopID })); } TempData["TosterState"] = "error"; TempData["TosterType"] = TosterType.Maseage; TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد"; return(RedirectToAction("Details", "Workshop", new { area = "Dashboard", id = model.WorkshopID })); } else { TempData["TosterState"] = "error"; TempData["TosterType"] = TosterType.Maseage; TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد"; return(RedirectToAction("Details", "Workshop", new { area = "Dashboard", id = model.WorkshopID })); } } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); }