//[ValidateAntiForgeryToken] public IActionResult RegisterUser([FromBody] UserRegisterModel model) { //this.ViewData["ReturnUrl"] = model.returnUrl; SwalMessage swal = new SwalMessage(); List <string> errors = new List <string>(); if (ModelState.IsValid) { if (!model.AcceptCondition) { swal.MessageType = false; swal.Message = _localizer.GetString("web.Please Accept Terms and Conditions"); swal.Header = _localizer.GetString("web.Error"); swal.SwalType = "error"; return(Json(swal)); } errors = _userRepository.GetByUserNameOrEmail(model.Email, model.Email); if (errors.Count > 0) { swal.MessageType = false; swal.Message = _localizer.GetString("web.Duplicate Email"); swal.Header = _localizer.GetString("web.Error"); swal.SwalType = "error"; return(Json(swal)); } if (model.Password.Length < 8) { swal.MessageType = false; swal.Message = _localizer.GetString("web.Password Must At least 8 Charachters"); swal.Header = _localizer.GetString("web.Error"); swal.SwalType = "error"; return(Json(swal)); } if (model.Password != model.ConfirmPassword) { //swal.MessageType = false; swal.MessageType = false; swal.Message = _localizer.GetString("web.Password does not match"); swal.Header = _localizer.GetString("web.Error"); swal.SwalType = "error"; return(Json(swal)); } ////Regex pattern = new Regex(@"^([0]|[00]|[+] *\)?)[0-9]{11,13}$"); Regex mobilePattern = new Regex(RegexStrings.MobileRegex); if (!mobilePattern.IsMatch(model.Mobile)) { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.Incorrect phone number must be 8 digits : 99999999"); swal.SwalType = "error"; return(Json(swal)); } bool isEmail = Regex.IsMatch(model.Email, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase); if (!isEmail) { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.Incorrect Email Format"); swal.SwalType = "error"; return(Json(swal)); } if (string.IsNullOrEmpty(model.Email) & string.IsNullOrEmpty(model.Mobile) & string.IsNullOrEmpty(model.Name) & string.IsNullOrEmpty(model.Password)) { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.all fields mandatory"); swal.SwalType = "error"; return(Json(swal)); } swal.MessageType = true; //model.returnUrl = "/Profile/profile"; User currentUser = new User(); currentUser = _mapper.Map <UserRegisterModel, User>(model); currentUser.Activation = true; currentUser.IsDeleted = false; currentUser.LangId = _currentUser.CurrentUser.LangId; using (var algorithm = MD5.Create()) //or MD5 SHA256 etc. { var hashedBytes = algorithm.ComputeHash(Encoding.UTF8.GetBytes(currentUser.Password)); currentUser.Password = BitConverter.ToString(hashedBytes).Replace("-", "").ToLower(); } _userRepository.Create(currentUser); currentUser.fk_UserRoleMap.Add(_userRoleRepository.MapUserRole(currentUser, _userRoleRepository.GetById(7))); _userRepository.Update(currentUser); #region Login var claims = new List <Claim> { new Claim("UserId", currentUser.Id.ToString()), new Claim("CustomCache", "0") }; ClaimsIdentity userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); HttpContext.SignInAsync(principal); #endregion //#region Redirect To Profile if (!string.IsNullOrEmpty(model.returnUrl)) // if (Url.IsLocalUrl(model.returnUrl)) { return(Redirect("/" + model.returnUrl)); } //#endregion //return RedirectToAction("Profile", "Profile", new { Area = "", returnUrl = model.returnUrl }); return(Json(swal)); } swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.all fields are mandatory"); swal.SwalType = "error"; return(Json(swal)); }
public IActionResult UserLogin([FromBody] UserLoginView model) { this.ViewData["ReturnUrl"] = model.returnUrl; User currentUser = null; SwalMessage swal = new SwalMessage(); CheckUserAccountModel data = _userRepository.CheckUserAccount(model.Email, model.Password); currentUser = data.user != null?_userRepository.GetById(data.user.Id) : null; UserViewModel _UserModel = _mapper.Map <User, UserViewModel>(currentUser); if (currentUser != null) { if (currentUser.Activation == true) { var userrole = _mapper.Map <User, UserViewModel>(currentUser); if (userrole.UserRoleName.FirstOrDefault() == "Register User") { var claims = new List <Claim> { new Claim("UserId", currentUser.Id.ToString()), new Claim("CustomCache", "0") }; ClaimsIdentity userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); HttpContext.SignInAsync(principal); HttpContext.User = principal; _UserModel = _mapper.Map <User, UserViewModel>(currentUser); } else if (userrole.UserRoleName.FirstOrDefault() == UserRoleName.TicketingUser) { var claims = new List <Claim> { new Claim("UserId", currentUser.Id.ToString()), new Claim("CustomCache", "0") }; ClaimsIdentity userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); HttpContext.SignInAsync(principal); HttpContext.User = principal; _UserModel = _mapper.Map <User, UserViewModel>(currentUser); } else { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.Go to Admin Login"); swal.SwalType = "error"; return(Json(swal)); } } else { swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.InactiveAccount"); swal.SwalType = "error"; return(Json(swal)); } } else { ////ModelState.AddModelError("Login Failed.Please enter correct credentials") //ModelState.AddModelError("", data.ErrorMessage); swal.MessageType = false; swal.Header = _localization.GetString("web.Failed"); swal.Message = _localization.GetString("web.Incorrect credentials"); swal.SwalType = "error"; return(Json(swal)); } if (_UserModel != null) { if (_UserModel.Id > 0) { if (_UserModel.UserRoleName.FirstOrDefault() == UserRoleName.User) { if (!string.IsNullOrEmpty(model.returnUrl)) { if (Url.IsLocalUrl(model.returnUrl)) { swal.Url = model.returnUrl; swal.MessageType = true; return(Json(swal)); } } // return Redirect("/" + model.returnUrl); } else if (_UserModel.UserRoleName.FirstOrDefault() == UserRoleName.TicketingUser) { if (!string.IsNullOrEmpty(model.returnUrl)) { if (Url.IsLocalUrl(model.returnUrl)) { swal.Url = model.returnUrl; swal.MessageType = true; return(Json(swal)); } } } } } if (!string.IsNullOrEmpty(model.returnUrl)) { if (Url.IsLocalUrl(model.returnUrl)) { return(Redirect(model.returnUrl)); } } swal.MessageType = true; return(Json(swal)); }