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)); }
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)); }
/// <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); }