public async Task <IActionResult> Register(UserRegisterBingingModel model) { if (!this.ModelState.IsValid) { return(this.View(model)); } var user = await this.accountsServices.RegisterUserAsync(model); if (user == null) { this.ViewData["Errors"] = GlobalConstants.InvalidRegisterMessage; return(this.View(model)); } await this.signInManager.SignInAsync(user, isPersistent : true); return(this.Redirect(GlobalConstants.Index)); }
public async Task <OlympiaUser> RegisterUserAsync(UserRegisterBingingModel model) { await this.AddRootAdminIfDoesNotExistAsync(); if (model.Age < 12 || model.Age > 65 || string.IsNullOrEmpty(model.Username) || string.IsNullOrEmpty(model.FullName) || this.CheckForExistingUser(model) || !this.CheckUsername(model.Username) || !this.CheckFullName(model.FullName)) { return(null); } var user = this.mapper.Map <OlympiaUser>(model); user.Address.Location = model.Address; user.ShoppingCart.UserId = user.Id; var result = await this.userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await this.userManager.AddToRoleAsync(user, GlobalConstants.ClientRoleName); } if (model.ProfilePicturImgUrl != null) { var url = MyCloudinary.UploadImage(model.ProfilePicturImgUrl, model.Username); user.ProfilePicturImgUrl = url ?? Constants.CloudinaryInvalidUrl; } this.context.Update(user); await this.context.SaveChangesAsync(); return(user); }
private bool CheckForExistingUser(UserRegisterBingingModel model) { return(this.userManager.Users .Select(users => users.UserName) .Any(name => name == model.Username)); }