Esempio n. 1
0
        public async Task Usuario_RealizarCadastro_DeveExecutarComSucesso()
        {
            // Arrange
            CreateUsuarioViewModel _usuario = _testsFixture.GerarUsuarioValido();

            // Act
            HttpResponseMessage _response = await _testsFixture.Client.PostAsync(_baseEndpoint, new StringContent(ExtensionMethodHelpers.ToJson(_usuario),
                                                                                                                  Encoding.UTF8,
                                                                                                                  "application/json"));

            // Assert
            _response.EnsureSuccessStatusCode();
        }
Esempio n. 2
0
        public ActionResult <ReturnUserViewModel> CreateUser(CreateUsuarioViewModel usuario)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                if (!usuario.Contraseña.Equals(usuario.ContraseñaConfirmada))
                {
                    return(BadRequest(new Response
                    {
                        Code = Models.Response.ResponseCode.Error.ToString(),
                        Message = "Error: Las contraseñas no coinciden",
                        Description = "Contraseña y ContraseñaConfirmada son diferentes"
                    }));
                }

                var encryptedPassword = EncryptionService.GetSHA256(usuario.Contraseña);

                var userToCreate = new Usuario
                {
                    NombreUsuario  = usuario.NombreUsuario,
                    NombreCompleto = usuario.NombreCompleto,
                    Edad           = usuario.Edad,
                    Contraseña     = encryptedPassword
                };

                _usuarioRepository.AddUsuario(userToCreate);

                return(Ok(new ReturnUserViewModel
                {
                    Id = userToCreate.Id,
                    Edad = userToCreate.Edad,
                    NombreCompleto = userToCreate.NombreCompleto,
                    NombreUsuario = userToCreate.NombreUsuario
                }));
            }
            catch (Exception e)
            {
                return(BadRequest(new Response
                {
                    Code = Models.Response.ResponseCode.Error.ToString(),
                    Message = "Error: Ah ocurrido un error",
                    Description = e.Message
                }));
            }
        }
Esempio n. 3
0
        public async Task <bool> CreateAsync(CreateUsuarioViewModel usuario)
        {
            ValidationResult _result = new CreateUsuarioValidation().Validate(usuario);

            if (!_result.IsValid)
            {
                throw new ApiException(_result.GetErrors(), ApiErrorCodes.MODNOTVALD);
            }

            Perfil _perfil = _repositoryPerfil.GetByKey(Perfil.ADM);

            if (_repository.ExistsWithUserName(usuario.Email))
            {
                throw new ApiException(ApiErrorCodes.EXUSU);
            }

            Usuario _usuario = _mapper.Map <Usuario>(usuario);

            IdentityResult _identityResult = await _userManager.AddPasswordAsync(_usuario, usuario.Senha);

            if (!_identityResult.Succeeded)
            {
                throw new ApiException(ApiErrorCodes.INVPASS, nameof(usuario.Senha));
            }

            IdentityResult _createResult = await _userManager.CreateAsync(_usuario, usuario.Senha);

            if (!_createResult.Succeeded || _createResult.Errors.Any())
            {
                throw new ApiException(_createResult.GetErrorsToString(), ApiErrorCodes.CRUSIDNT);
            }

            _usuario.SetPerfilId(_perfil.Id);

            _repository.Create(_usuario);

            if (!_uow.Commit())
            {
                throw new ApiException(ApiErrorCodes.ERROPBD);
            }

            return(true);
        }
Esempio n. 4
0
        public async Task <IActionResult> Create(CreateUsuarioViewModel account)
        {
            if (!ModelState.IsValid)
            {
                return(View(account));
            }

            var user = new Usuario()
            {
                UserName       = account.Email,
                Nome           = account.Nome,
                Apelido        = account.Apelido ?? account.Nome.Split(' ', StringSplitOptions.None)[0],
                DataNascimento = account.DataNascimento,
                Email          = account.Email,
                EmailConfirmed = true
            };

            var result = await userManager.CreateAsync(user, account.Senha);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    // Lista de erros do UserManager
                    // https://stackoverflow.com/questions/40583707/list-of-error-cases-in-use-usermanager-createasyncuser-password

                    if (error.Code == "DuplicateEmail")
                    {
                        ModelState.AddModelError("", "O E-mail informado já encontra-se cadastrado em nosso sistema!");
                    }
                }
                return(View(account));
            }
            await userManager.AddToRoleAsync(user, account.Perfil);

            return(RedirectToAction("Index"));
        }
Esempio n. 5
0
        public ActionResult CriarLogin(CreateUsuarioViewModel usuario)
        {
            MapperConfiguration config = new MapperConfiguration(cfg => cfg.CreateMap <CreateUsuarioViewModel, Usuario>());
            var     mapper             = config.CreateMapper();
            Usuario domain             = mapper.Map <Usuario>(usuario);

            try
            {
                bll.Inserir(domain);
                Cookie.Set(domain.ID.ToString());
                return(RedirectToAction("Lista", "Home"));
            }
            catch (PetShopException ex)
            {
                StringBuilder errors = new StringBuilder();
                foreach (ErrorField item in ex.Errors)
                {
                    errors.Append("<div style='display: block'>" + item.Error + "</div>");
                }
                ViewBag.Erros = errors.ToString();
            }

            return(View());
        }
Esempio n. 6
0
        public async Task <IActionResult> CreateAsync(CreateUsuarioViewModel usuario)
        {
            bool _result = await _service.CreateAsync(usuario);

            return(Ok(_result));
        }