public ActionResult AddNumber(string phoneNumber) { string password = Request.Form["Password"]; phoneNumber = GetCookie("Acct", "phone_number"); bool flag = true; if (string.IsNullOrEmpty(phoneNumber)) { ViewBag.ValidNumber = false; ViewBag.PhoneNumber = ""; flag = false; } ViewBag.PhoneNumber = phoneNumber; string otp = Request.Form["Password"]; if (flag && (string.IsNullOrEmpty(otp) || otp.Length < 4)) { ViewBag.ValidNumber = true; ViewBag.Error = true; ViewBag.ErrorMessage = System.Configuration.ConfigurationManager.AppSettings["Validate010"]; flag = false; } if (flag) { int result = OTPHandler.ValidateOTP(phoneNumber, otp); switch (result) { case 0: int account_id = Convert.ToInt32(Session["Account_Id"].ToString()); var account = db.Accounts.SingleOrDefault(x => x.Account_Id == account_id); if (account == null) { return(HttpNotFound()); } AccountMobile am = db.AccountMobiles.Where(x => x.Account_Id.Equals(account.Account_Id)).Where(x => x.Mobile_Number.Equals(phoneNumber)).SingleOrDefault(); bool first_create = false; if (am == null) { am = new AccountMobile(); am.Account_Id = account.Account_Id; am.Status_Cd = FreebieStatus.MobileActive(); am.Mobile_Number = phoneNumber; am.Primary_Flag = false; am.Created_Dttm = DateTime.Now; am.Updated_Dttm = DateTime.Now; first_create = true; } if (first_create) { db.AccountMobiles.Add(am); } else { am.Status_Cd = FreebieStatus.MobileActive(); am.Created_Dttm = DateTime.Now; am.Updated_Dttm = DateTime.Now; db.Entry(am).State = EntityState.Modified; } OTP otp_request = db.OTPs.SingleOrDefault(x => x.PhoneNumber.Equals(phoneNumber)); if (otp_request != null) { db.OTPs.Remove(otp_request); } db.SaveChanges(); FreebieEvent.UpdateMobile(account, phoneNumber, "A03", Permission.f_update_number_page_id); RemoveCoookie("Acct"); return(RedirectToAction("ViewNumber", "AccInfo")); case 1: ViewBag.Error = true; ViewBag.ValidNumber = true; ViewBag.ErrorMessage = System.Configuration.ConfigurationManager.AppSettings["Validate007"]; ViewBag.ShowPwd = true; break; case 2: ViewBag.ValidNumber = false; ViewBag.PhoneNumber = ""; ViewBag.ResetOTP = System.Configuration.ConfigurationManager.AppSettings["Otp03"]; RemoveCoookie("Acct"); break; case 3: ViewBag.ValidNumber = false; ViewBag.PhoneNumber = ""; ViewBag.ResetOTP = System.Configuration.ConfigurationManager.AppSettings["Otp04"]; RemoveCoookie("Acct"); break; default: break; } } ViewBag.ShowPwd = true; return(View()); }
public ActionResult VerifySubrNumber() { string phoneNumber = Request.Form["PhoneNumber"]; ViewBag.PhoneNumber = phoneNumber; ViewBag.Path = "../AccInfo/ViewNumber"; int result = CustomValidate.ValidateNumber(phoneNumber); ViewBag.ValidNumber = false; switch (result) { case 0: ViewBag.Type = 1; ModelState.AddModelError("PhoneNumber", System.Configuration.ConfigurationManager.AppSettings["Account010"]); return(View("AddNumber")); case 1: ViewBag.ValidNumber = true; string otp = OTPHandler.SendOTPReg(phoneNumber); ViewBag.ShowPwd = true; if (otp.Equals("limit_daily")) { string err_str = System.Configuration.ConfigurationManager.AppSettings["Otp01"]; err_str = err_str.Replace("{count}", System.Configuration.ConfigurationManager.AppSettings["OTP_ALLOW_PER_DAY_PER_NUMBER"]); ViewBag.ErrorOTP = err_str; } else { if (otp.Equals("limit_interval")) { string err_str = System.Configuration.ConfigurationManager.AppSettings["Otp02"]; err_str = err_str.Replace("{minutes}", System.Configuration.ConfigurationManager.AppSettings["INTERVAL_PERIOD_BETWEEN_OTP"]); ViewBag.ErrorOTP = err_str; } } ViewBag.OTP = otp; AddCookie("Acct", new string[] { "phone_number" }, new string[] { phoneNumber }); return(View("AddNumber")); case 2: ViewBag.Type = 2; return(View("RenderStatics")); case 3: ViewBag.Type = 2; return(View("RenderStatics")); case 4: ViewBag.Type = 2; return(View("RenderStatics")); case 5: ViewBag.Type = 2; return(View("RenderStatics")); default: ViewBag.Type = 1; return(View("AddNumber")); } }