コード例 #1
0
        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();
        }
コード例 #2
0
        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!"));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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)
            });
        }