Ejemplo n.º 1
0
        public static int Compare(string a, string b, StringComparison2 comparisonType)
        {
            if (comparisonType == StringComparison2.InvariantCultureIgnoreCase)
            {
                return(System.Globalization.CultureInfo.InvariantCulture
                       .CompareInfo.Compare(a, b, System.Globalization.CompareOptions.IgnoreCase));
            }

            if (comparisonType == StringComparison2.InvariantCulture)
            {
                return(System.Globalization.CultureInfo.InvariantCulture
                       .CompareInfo.Compare(a, b, System.Globalization.CompareOptions.None));
            }

            return(string.Compare(a, b, (StringComparison)comparisonType));
        }
Ejemplo n.º 2
0
        public static bool EndsWith(string some, string value, StringComparison2 comparisonType)
        {
            if (some == null && value == null)
            {
                return(true);
            }

            if (some == null || value == null)
            {
                return(false);
            }

            if (value.Length > some.Length)
            {
                return(false);
            }

            string end = some.Substring(some.Length - value.Length, value.Length);

            return(String2.Equals(end, value, comparisonType));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets user Gmail email address.
        /// </summary>
        /// <returns>Returns user Gmail email address.</returns>
        /// <exception cref="InvalidOperationException">Is raised when this method is called in invalid state.</exception>
        public string GetUserEmail()
        {
            if (string.IsNullOrEmpty(m_AccessToken))
            {
                throw new InvalidOperationException("Invalid state, you need to call 'GetAccessToken' method first.");
            }

            string url       = "https://www.googleapis.com/userinfo/email";
            string timestamp = GenerateTimeStamp();
            string nonce     = GenerateNonce();

            // Build signature base.
            StringBuilder xxx = new StringBuilder();

            xxx.Append("oauth_consumer_key=" + UrlEncode(m_ConsumerKey));
            xxx.Append("&oauth_nonce=" + UrlEncode(nonce));
            xxx.Append("&oauth_signature_method=" + UrlEncode("HMAC-SHA1"));
            xxx.Append("&oauth_timestamp=" + UrlEncode(timestamp));
            xxx.Append("&oauth_token=" + UrlEncode(m_AccessToken));
            xxx.Append("&oauth_version=" + UrlEncode("1.0"));
            string signatureBase = "GET" + "&" + UrlEncode(url) + "&" + UrlEncode(xxx.ToString());

            // Calculate signature.
            string signature = ComputeHmacSha1Signature(signatureBase, m_ConsumerSecret, m_AccessTokenSecret);

            //Build Authorization header.
            StringBuilder authHeader = new StringBuilder();

            authHeader.Append("Authorization: OAuth ");
            authHeader.Append("oauth_version=\"1.0\", ");
            authHeader.Append("oauth_nonce=\"" + nonce + "\", ");
            authHeader.Append("oauth_timestamp=\"" + timestamp + "\", ");
            authHeader.Append("oauth_consumer_key=\"" + m_ConsumerKey + "\", ");
            authHeader.Append("oauth_token=\"" + UrlEncode(m_AccessToken) + "\", ");
            authHeader.Append("oauth_signature_method=\"HMAC-SHA1\", ");
            authHeader.Append("oauth_signature=\"" + UrlEncode(signature) + "\"");

            // Create web request and read response.
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "GET";
            request.Headers.Add(authHeader.ToString());


            using (WebResponse response = request.GetResponse()){
                using (StreamReader reader = new StreamReader(response.GetResponseStream())){
                    foreach (string parameter in HttpUtility.UrlDecode(reader.ReadToEnd()).Split('&'))
                    {
                        string[] name_value = parameter.Split('=');

                        // string.Equals(name_value[0],"email", StringComparison2.InvariantCultureIgnoreCase)
                        if (StringComparison2.Equals(name_value[0], "email"))
                        {
                            m_Email = name_value[1];
                        }
                    }
                }
            }

            return(m_Email);
        }