public IActionResult UserHome([FromBody] JObject AddAdminRequestBody) { JObject resposneObject = new JObject(); resposneObject.Add("message", JToken.FromObject("User Success")); return(UtilityExtensions.ReturnResponse(resposneObject, HttpStatusCode.OK)); }
public async Task <IActionResult> VerifyEmail([FromBody] VerificationEmailModel VerificationEmailData) { JObject responseObject = new JObject(); VerificationEmailModel model = _context.Registrations.Where(x => x.Token == VerificationEmailData.Token && x.Email == VerificationEmailData.Email).FirstOrDefault(); try { if (model == null) { responseObject.Add("message", JToken.FromObject("false")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.InternalServerError)); } responseObject.Add("message", JToken.FromObject("true")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.OK)); } catch (Exception ex) { responseObject.Add("message", JToken.FromObject("false")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.InternalServerError)); } }
public async Task <IActionResult> RegisterUserAsync([FromBody] RegisterUserModel RegisterUserModelDTO) { JObject responseObject = new JObject(); try { if (RegisterUserModelDTO == null) { responseObject.Add("message", JToken.FromObject("Register request body cannot be null!")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.BadRequest)); } if (!ModelState.IsValid) { string modelErrorMessage = string.Join(" | ", ModelState.Values .SelectMany(v => v.Errors) .Select(e => e.ErrorMessage)); responseObject.Add("message", JToken.FromObject(modelErrorMessage)); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.BadRequest)); } ApplicationUser newUser = new ApplicationUser { UserName = RegisterUserModelDTO.UserName, Email = RegisterUserModelDTO.Email, FirstName = RegisterUserModelDTO.FirstName, LastName = RegisterUserModelDTO.LastName, Age = RegisterUserModelDTO.Age }; //Set password options _userManager.Options.Password = new PasswordOptions { RequireDigit = true, RequiredLength = 8, RequireNonAlphanumeric = false, RequireUppercase = false, RequireLowercase = true, RequiredUniqueChars = 6 }; _userManager.Options.User.RequireUniqueEmail = true; IdentityResult result = await _userManager.CreateAsync(newUser, RegisterUserModelDTO.Password); if (result.Succeeded) { await _signInManager.SignInAsync(newUser, false); await _userManager.AddToRoleAsync(newUser, "User"); string jwtSecurityToken = await GenerateJwtToken(newUser); responseObject.Add("access_token", JToken.FromObject(jwtSecurityToken)); responseObject.Add("expires", JToken.FromObject(30)); responseObject.Add("email", JToken.FromObject(newUser.Email)); bool emailResult = new EmailHandling().SendVerificationEmail(newUser.Email, jwtSecurityToken).GetAwaiter().GetResult(); VerificationEmailModel verificationEmailModel = new VerificationEmailModel { RegisterId = Guid.NewGuid(), Email = newUser.Email, Token = jwtSecurityToken }; await _context.Registrations.AddAsync(verificationEmailModel); await _context.SaveChangesAsync(); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.Created)); } else { string modelCreationErrors = string.Join(string.Empty, result.Errors.SelectMany(x => x.Description)); responseObject.Add("message", JToken.FromObject($"User creation failed because of:\n{modelCreationErrors}")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.BadRequest)); } } catch (Exception ex) { responseObject.Add("message", JToken.FromObject(ex.Message)); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.InternalServerError)); } }
public async Task <IActionResult> LoginUserAsync([FromBody] LoginModel LoginModelDTO) { JObject responseObject = new JObject(); try { if (LoginModelDTO == null) { responseObject.Add("message", JToken.FromObject("Login request body cannot be null!")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.BadRequest)); } if (!ModelState.IsValid) { string modelErrorMessage = string.Join(" | ", ModelState.Values .SelectMany(v => v.Errors) .Select(e => e.ErrorMessage)); responseObject.Add("message", JToken.FromObject(modelErrorMessage)); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.BadRequest)); } SignInResult signInResult = await _signInManager.PasswordSignInAsync (userName : LoginModelDTO.UserName, password : LoginModelDTO.Password, isPersistent : true, lockoutOnFailure : false); if (signInResult.Succeeded) { ApplicationUser currentlyLoggedinUser = _userManager.Users.SingleOrDefault(x => x.UserName == LoginModelDTO.UserName); IEnumerable <string> role = await _userManager.GetRolesAsync(currentlyLoggedinUser); if (role.Count() > 0) { responseObject.Add("role", JToken.FromObject(role.ElementAt(0))); } else { responseObject.Add("message", JToken.FromObject("User is unauthorized to login!!!")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.Unauthorized)); } if (currentlyLoggedinUser == null) { responseObject.Add("message", JToken.FromObject("User with credentials not found")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.NotFound)); } string jwtSecurityToken = await GenerateJwtToken(currentlyLoggedinUser); responseObject.Add("access_token", JToken.FromObject(jwtSecurityToken)); responseObject.Add("expires", JToken.FromObject(30)); responseObject.Add("email", JToken.FromObject(currentlyLoggedinUser.Email)); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.OK)); } else { responseObject.Add("message", JToken.FromObject("User is unauthorized to login!!!")); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.Unauthorized)); } } catch (Exception ex) { responseObject.Add("message", JToken.FromObject(ex.Message)); return(UtilityExtensions.ReturnResponse(responseObject, HttpStatusCode.InternalServerError)); } }