public async Task <ActionResult> Login(
            [FromHeader] string grantType,
            [FromHeader] string password,
            [FromHeader] string userName,
            [FromBody] LoginDTO login
            )
        {
            if (await _usuariosServicios.ObtenerUsuarioEmailAsync(login.Login) == null)
            {
                return(BadRequest("La cuenta no ha sido registrada anteriormente, sigue los pasos para el procedimiento de registro o contacte directamente con su proveedor"));
            }

            var autenticacion = await _autenticacionServicios.Login(login.Login, login.Password);

            if (!autenticacion.Valid && autenticacion.Message != "")
            {
                return(BadRequest(autenticacion.Message));
            }

            var token = new
            {
                access_token  = autenticacion.Access_Token,
                refresh_token = autenticacion.Refresh_Token,
                expiracion    = autenticacion.Expire,
                type          = autenticacion.Type
            };

            return(Ok(token));
        }
        public async Task <IActionResult> CrearUsuarioAsync([FromBody] CrearUsuarioDTO usuarioDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var usuario = UsuarioMapper.Map(usuarioDTO);

            if (await _usuariosServicios.ObtenerUsuariosNombreAsync(usuarioDTO.Usuario) != null)
            {
                return(BadRequest("El nombre de usuario ya esta registrado intentelo con uno diferente"));
            }

            if (await _usuariosServicios.ObtenerUsuarioEmailAsync(usuario.Email) != null)
            {
                return(BadRequest("El correo electronico ya esta registrado"));
            }

            var idUsuarioCreado = await _usuariosServicios.CrearUsuarioAsync(usuario);


            if (idUsuarioCreado.Equals(Guid.Empty))
            {
                return(BadRequest("El usuario no se creo correctamente"));
            }

            var usuarioCreado = await _usuariosServicios.ObtenerUsuarioIdAsync(idUsuarioCreado);

            var usuarioCreadoDTO = _mapper.Map <UsuariosDTO>(usuarioCreado);

            var correoEnviado = new Gmail(usuario.Email, "Te has registrado correctamente", "Bienvenido te has registrado en nuestro sistema");

            correoEnviado.Enviar();

            return(CreatedAtRoute(
                       "ObtenerUsuarioId",
                       new { id = idUsuarioCreado },
                       usuarioCreadoDTO
                       ));
        }