예제 #1
0
        public async Task <ActionResult <UserToken> > crear([FromBody] UserInfo model)
        {
            try
            {
                var existe = await _usuarioServicio.existeUsuarioPorEmail(model.Email);

                var usuario = await _userManager.FindByEmailAsync(model.Email);

                if (usuario != null || existe)
                {
                    string mensaje = $"El usuario con el correo: {model.Email}, ya existe.";
                    return(BadRequest(mensaje));
                }

                var applicationUser = new ApplicationUser {
                    Id = Guid.NewGuid(), UserName = model.Email, Email = model.Email
                };
                var result = await _userManager.CreateAsync(applicationUser, model.PassWord);

                if (result.Succeeded)
                {
                    await _usuarioServicio.crear(new Usuario()
                    {
                        Id                   = applicationUser.Id,
                        Apellido             = model.Apellido,
                        CorreoElectronico    = model.Email,
                        EmpresaId            = model.EmpresaId,
                        Nombre               = model.Nombre,
                        TipoIdentificacionId = model.TipoIdentificacionId,
                        NumeroIdentificacion = model.NumeroIdentificacion
                    });

                    return(Ok(BuildToken(model)));
                }
                else
                {
                    return(BadRequest("Usuario o contraseña invalidos"));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));

                throw (e);
            }
        }