示例#1
0
 private void FillEditApplicationUser(ref ApplicationUser user, BlogerFieldsViewModel model)
 {
     user.Name            = model.Name;
     user.PaternalSurname = model.PaternalSurname;
     user.MaternalSurname = model.MaternalSurname;
     user.Email           = model.Email;
     user.UserName        = model.UserName;
     user.PhoneNumber     = model.PhoneNumber;
 }
示例#2
0
        public async Task <IActionResult> Add(BlogerFieldsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(model));
            }

            if (_context.Users.Any(x => x.UserName.Equals(model.UserName)))
            {
                return(BadRequest("El usuario especificado ya se encuentra registrado."));
            }
            //ModelState.AddModelError(nameof(model.UserName), "El usuario especificado ya se encuentra registrado.");

            if (_context.Users.Any(x => x.Email.Equals(model.Email)))
            {
                return(BadRequest("El correo electrónico especificado ya se encuentra registrado."));
            }
            //ModelState.AddModelError(nameof(model.Email), "El correo electrónico especificado ya se encuentra registrado.");

            try
            {
                var passwordValidator = new PasswordValidator <ApplicationUser>();
                var passwordIsValid   = passwordValidator.ValidateAsync(_userManager, new ApplicationUser(), model.Password).Result.Succeeded;
                if (!passwordIsValid)
                {
                    return(BadRequest("La contraseña debe contener al menos 1 letra mayúscula, 1 letra minúscula, 1 dígito y un caracter no alfanumérico."));
                }
                //ModelState.AddModelError(nameof(model.Password), "La contraseña debe contener al menos 1 letra mayúscula, 1 letra minúscula, 1 dígito y un caracter no alfanumérico.");

                /*
                 * var teacher = new ENTITIES.Models.Generals.Teacher()
                 * {
                 *  TeacherInformation = new TeacherInformation()
                 *  {
                 *      Resolution = new Resolution(),
                 *  }
                 * };*/
                var user = new ApplicationUser();
                FillApplicationUser(ref user, model);
                var identityResult = await _userManager.CreateAsync(user, model.Password);

                if (!identityResult.Succeeded)
                {
                    return(BadRequest("Ocurrió un problema al registrar."));
                }

                var identityRoleResult = await _userManager.AddToRoleAsync(user, ConstantHelpers.ROLES.BLOGER);

                if (!identityRoleResult.Succeeded)
                {
                    return(BadRequest("Ocurrió un problema al registrar."));
                }

                //teacher.UserId = user.Id;
                //teacher.Condition = model.SelectedCondition;
                //teacher.TeacherDedicationId = model.SelectedDedication;
                //await _context.Teacher.AddAsync(teacher);

                //await SaveChangesAsync();
                await _context.SaveChangesAsync();

                //SuccessToastMessage("Registro del docente realizado.");
                return(Ok());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }