public ActionResult SendPhoneVerificationOtp([FromRoute] string userId, [FromBody] PhoneVerificationViewModel phoneViewModel) { try { var user = _userService.GetByPhone(phoneViewModel.Phone); if (user == null || !user.IsActive) { return(BadRequest(new { status = 400, title = $"User with phone number - {phoneViewModel.Phone} does not exists" })); } if (user.UserId != userId) { return(BadRequest(new { status = 400, title = "Phone number does not belongs to you" })); } if (user.IsPhoneVerified) { return(BadRequest(new { status = 400, title = $"Phone number - {phoneViewModel.Phone} already verified" })); } _userService.SendPhoneVerificationSms(user); return(Ok(new { status = 200, title = "Sms sent successfully." })); } catch (Exception e) { return(BadRequest(new { status = 400, title = "Something went wrong" })); } }
public ActionResult Register(RegisterModel model) { if (ModelState.IsValid && model.FirstName != null && model.LastName != null && model.UserName != null && model.Password != null && model.Phone != null) { try { var UserInfo = new { FirstName = model.FirstName, LastName = model.LastName, Password = model.Password, UserType = "M", Balance = 2, RegistrationDate = DateTime.Now, ScreenName = model.FirstName, LastModified = DateTime.Now, MeetingAvailability = true, ChannelNo = service.GetMaxChannelNo(), EmailID = model.UserName, Mobile = model.Phone }; var confirmationToken = WebSecurity.CreateUserAndAccount(model.UserName, model.Password, UserInfo, true); var mail = UserMailer.ConfirmAccount(model.FirstName, confirmationToken); mail.Subject = "Deliverload account confirmation"; //mail.To.Add(new MailAddress(model.UserName)); mail.To.Add(new MailAddress("*****@*****.**")); var client = new SmtpClientWrapper(); mail.SendAsync("async send", client); var md = new LoginModel { Message = "RegisterSuccess" }; //SMSHelper.SendSMS("918460311248","please enter otp 123456 to verify your phonenumber"); UserModel userModel = service.GetUserDetails(UserInfo.EmailID); PhoneVerificationViewModel pvModel = new PhoneVerificationViewModel(); pvModel.phone = model.Phone; pvModel.user_id = userModel.UserId; pvModel.isconfirmed = false; //service.AddPhoneVerificationAttempts(pvModel); return(RedirectToAction("PhoneVerification", pvModel)); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", "A user account with the same email id already exists.You need to enter a different email id"); //ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } // } } else { ModelState.AddModelError("", "All fields are required."); } // If we got this far, something failed, redisplay form return(View("Index", model)); }
public PhoneVerificationViewModel AddPhoneVerificationAttempts(PhoneVerificationViewModel objPVA) { PhoneVerificationAttempt userPVA = dbContext.PhoneVerificationAttempts.Where(l => l.Phone == objPVA.phone && l.Otp == objPVA.otp).FirstOrDefault(); if (userPVA != null) { userPVA.Otp = objPVA.otp; dbContext.Entry(userPVA).State = System.Data.EntityState.Modified; } else { PhoneVerificationAttempt pva = new PhoneVerificationAttempt(); pva.Phone = objPVA.phone; pva.UserId = objPVA.user_id; pva.Otp = objPVA.otp; pva.Status = "PENDING"; pva.AttemptedOn = DateTime.Now; dbContext.PhoneVerificationAttempts.Add(pva); } dbContext.SaveChanges(); return(objPVA); }
public ActionResult PhoneVerification(PhoneVerificationViewModel pvModel) { return(View(pvModel)); }