// [Obsolete] public async Task <IActionResult> GetConformUser(string Email) { var user = await userManager.FindByNameAsync(Email); if (await userManager.IsInRoleAsync(user, "User") && user.Confirmed != Confirmed.block && !user.Block) { var Code = new Random().Next(1234, 9999); var UserCode = _contect.UserCodeConfierm.SingleOrDefault(i => i.UserId == user.Id && i.Type == Codetype.PasswordUser); if (UserCode != null) { UserCode.Code = Code.ToString(); UserCode.ExperdDate = DateTime.Now.AddMinutes(10); UserCode.Type = Codetype.PasswordUser; } else { var UserCodeConfierm = new UserCodeConfierm() { ExperdDate = DateTime.Now.AddMinutes(10), UserId = user.Id, Code = Code.ToString(), Type = Codetype.PasswordUser }; _contect.UserCodeConfierm.Add(UserCodeConfierm); } _contect.SaveChanges(); var Use = _contect.Users.SingleOrDefault(i => i.id == user.Id); var Body = AlertNotifiction.ReadeFile("wwwroot//Emailfile//conformEmile.html") .Replace("#name#", Use.AName).Replace("#code#", Code.ToString()); AlertNotifiction.SendEmail(user.Email, " Conform Account", _SmtpSettings, Body); return(Ok()); } else { return(NotFound()); } }
public async Task <IActionResult> RegisterUser(UserModelview model) { if (ModelState.IsValid) { var User = new UserIdentity() { UserName = model.Email, PhoneNumber = model.Phon, Email = model.Email, Confirmed = Confirmed.non, Block = false }; try { var result = await userManager.CreateAsync(User, model.Password); if (result.Succeeded) { var user = new User() { id = User.Id, Name = model.Name, AName = model.AName, Hdate = DateTime.Now, }; if (!await roleManager.RoleExistsAsync("User")) { await roleManager.CreateAsync(new IdentityRole("User")); } await userManager.AddToRoleAsync(User, "User"); _contect.Users.Add(user); _contect.SaveChanges(); //get Token :) var claim = new[] { new Claim("Id", User.Id), new Claim("Rolas", userManager.GetRolesAsync(User).Result.FirstOrDefault()) }; var signinKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:SigningKey"])); int expiryInMinutes = Convert.ToInt32(_configuration["Jwt:ExpiryInHouer"]); var token = new JwtSecurityToken( claims: claim, issuer: _configuration["Jwt:Site"], audience: _configuration["Jwt:Site"], expires: DateTime.UtcNow.AddHours(expiryInMinutes), signingCredentials: new SigningCredentials(signinKey, SecurityAlgorithms.HmacSha256) ); /// code conform var Code = new Random().Next(1234, 9999); var UserCodeConfierm = new UserCodeConfierm() { ExperdDate = DateTime.Now.AddMinutes(10), UserId = user.id, Code = Code.ToString(), Type = Codetype.PasswordUser }; _contect.UserCodeConfierm.Add(UserCodeConfierm); _contect.SaveChanges(); var Body = AlertNotifiction.ReadeFile("wwwroot//Emailfile//conformEmile.html") .Replace("#name#", user.AName).Replace("#code#", Code.ToString()); AlertNotifiction.SendEmail(user.UserIdentity.Email, " Conform Account", _SmtpSettings, Body); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token), expiration = token.ValidTo, user.id, user.Name, user.AName, user.UserIdentity.Email, user.UserIdentity.PhoneNumber, Roles = userManager.GetRolesAsync(User).Result.FirstOrDefault() })); } else { return(BadRequest()); } } catch (Exception e) { return(BadRequest(new IdentityError() { Description = e.Message.ToString() })); } } else { return(BadRequest()); } }