public async Task RegisterTeacherAsync(RegisterTeacherModel request) { var registerCommand = db.CreateCommand(); registerCommand.CommandText = "EXEC RegisterTeacher @email, @passwordHash, @fullName"; registerCommand.Parameters.AddWithValue("@email", request.Email); registerCommand.Parameters.AddWithValue("@passwordHash", new PasswordHasher <AppUser>().HashPassword(null, request.Password)); registerCommand.Parameters.AddWithValue("@fullName", request.FullName); await registerCommand.ExecuteNonQueryAsync(); }
public async Task <IActionResult> CreateUserTeacherAsync([FromBody] RegisterTeacherModel model) { if (ModelState.IsValid) { var Result = await Service.RegisterUserTeacherAsync(model); if (Result.IsSuccess) { return(Ok(Result)); } return(BadRequest(Result)); } return(BadRequest("No se pudo registrar. Algo estuvo mal!")); }
public async Task <IActionResult> RegisterTeacher(RegisterTeacherModel model) { if (ModelState.IsValid) { try { await usersRepository.OpenConnectionAsync(); AppUser user = await usersRepository.GetByEmailAsync(model.Email); if (user == null) { await usersRepository.RegisterTeacherAsync(model); user = await usersRepository.GetByEmailAsync(model.Email); await Authenticate(user); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError(string.Empty, "Teacher is already registered"); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(model)); } finally { usersRepository.CloseConnection(); } } return(View(model)); }
public async Task <UserManagerResponse> RegisterUserTeacherAsync(RegisterTeacherModel model) { if (model == null) { throw new NullReferenceException("No se enviaron datos"); } if (model.Password != model.ConfirmPassword) { return(new UserManagerResponse() { Message = "Las contraseñas no son iguales", IsSuccess = false }); } if (await UserManager.FindByEmailAsync(model.Email) != null) { return(new UserManagerResponse() { Message = "Ya hay un usuario registrado con ese Email", IsSuccess = false }); } var applicationUser = new ApplicationUser { Name = model.Name, LastName = model.LastName, UserName = model.UserName, Birthday = model.Birthday, Degree = model.Degree, City = model.City, Email = model.Email, Uid = model.Uid, State = true, Status = true, UpdateDate = DateTime.Now, CreateDate = DateTime.Now }; var result = await UserManager.CreateAsync(applicationUser, model.Password); if (result.Succeeded == true) { List <AuxiliarClass> query = await(from u in dbcontext.Users where u.Email == applicationUser.Email && u.Name == applicationUser.Name select new AuxiliarClass { aux1 = u.Id }).AsNoTracking().ToListAsync(); bool resp = await CreateUserRoleAsync(query.FirstOrDefault().aux1, "Profesor"); if (!resp) { return(new UserManagerResponse() { Message = "Algo salio mal, no se pudo asignar el rol de Maestro. Pero el Usuario se pudo crear.", IsSuccess = true }); } else { return(new UserManagerResponse() { Message = "Usuario creado correctamente!", IsSuccess = true }); } } return(new UserManagerResponse() { Message = "El usuario no pudo ser creado", IsSuccess = false, Errors = result.Errors.Select(e => e.Description) }); }