public TwitterOAuthRequestConstructor(Uri requestUri, TwitterOAuthTokens tokens, string method = "GET")
        {
            Verb = method;

            RequestUriWithoutQuery = new Uri(requestUri.AbsolutaSinQuery());

            if (!string.IsNullOrEmpty(requestUri.Query))
            {
                QueryParams = requestUri.CogerQueryParametros()
                              .Select(p => new OAuthParametro(p.Key, Uri.UnescapeDataString(p.Value)))
                              .ToList();
            }
            else
            {
                QueryParams = new List <OAuthParametro>();
            }

            EncodedRequestUri = GetEncodedUri(requestUri, QueryParams);

            Version         = new OAuthParametro("oauth_version", "1.0");
            Nonce           = new OAuthParametro("oauth_nonce", GenerarNonce());
            Timestamp       = new OAuthParametro("oauth_timestamp", GenerarTiempoLapso());
            SignatureMethod = new OAuthParametro("oauth_signature_method", "HMAC-SHA1");
            ConsumerKey     = new OAuthParametro("oauth_consumer_key", tokens.ConsumerKey);
            ConsumerSecret  = new OAuthParametro("oauth_consumer_secret", tokens.ConsumerSecret);
            Token           = new OAuthParametro("oauth_token", tokens.AccessToken);
            TokenSecret     = new OAuthParametro("oauth_token_secret", tokens.AccessTokenSecret);
            TokenCallback   = new OAuthParametro("oauth_callback", "https://pepeizqapps.com/");
        }
        private static Uri GetEncodedUri(Uri requestUri, IEnumerable <OAuthParametro> parametros)
        {
            StringBuilder requestParametersBuilder = new StringBuilder(requestUri.AbsolutaSinQuery());
            var           oAuthParametros          = parametros as OAuthParametro[] ?? parametros.ToArray();

            if (oAuthParametros.Any())
            {
                requestParametersBuilder.Append("?");

                foreach (var queryParam in oAuthParametros)
                {
                    requestParametersBuilder.AppendFormat("{0}&", queryParam.ToString());
                }

                requestParametersBuilder.Remove(requestParametersBuilder.Length - 1, 1);
            }

            return(new Uri(requestParametersBuilder.ToString()));
        }