Exemplo n.º 1
0
        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" }));
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public ActionResult PhoneVerification(PhoneVerificationViewModel pvModel)
 {
     return(View(pvModel));
 }