public static string ToHeaderString(this IList<EmailContact> contacts)
        {
            if (contacts.Count == 0) {
                return string.Empty;
            }

            using (var sw = new StringWriter()) {
                foreach (var contact in contacts) {
                    sw.WriteFormat("{0} <{1}>,", contact.Name, contact.Address);
                }
                sw.TrimEnd(',');
                return sw.ToString();
            }
        }
 private static string FormatHeaderFieldsCommand(IEnumerable<string> headers)
 {
     using (var sw = new StringWriter()) {
         sw.Write("HEADER.FIELDS (");
         foreach (var header in headers) {
             sw.Write(header);
             sw.Write(Characters.Space);
         }
         sw.TrimEnd(Characters.Space);
         sw.Write(")");
         return sw.ToString();
     }
 }
Exemple #3
0
        public WebResponse MakeRequest()
        {
            var requestParams = CreateOAuthRequestParams();

            if (_sign) {
                var signature = OAuthSignature.Create(this, requestParams);
                requestParams.Add(OAuthParameters.OAuthSignature, signature);
            }

            string url;
            using (var sw = new StringWriter()) {
                sw.Write(RequestEndpoint.AbsoluteUri);
                sw.Write("?");

                var sorted = new SortedDictionary<string, string>();

                foreach (var p in Parameters) {
                    sorted.Add(p.Key, p.Value);
                }

                foreach (var p in requestParams) {
                    sorted.Add(p.Key, p.Value);
                }

                foreach (var p in sorted) {
                    sw.Write("{0}={1}", p.Key, p.Key == OAuthParameters.OAuthVerifier
                                                   ? HttpEncoder.UrlEncode(p.Value) : p.Value);

                    sw.Write("&");
                }
                // if params have been written the last item will be a '&' else it will be a '?'.
                sw.TrimEnd('&');
                sw.TrimEnd('?');

                url = sw.ToString();
            }

            var request = (HttpWebRequest) WebRequest.Create(url);
            request.Accept = "*/*";
            request.Method = "GET";
            request.Headers.Add(HttpRequestHeader.Authorization, "OAuth");
            return request.GetResponse();
        }
Exemple #4
0
        public Uri GetAuthorizationUri()
        {
            string url;
            using (var sw = new StringWriter()) {
                sw.Write(RequestEndpoint.AbsoluteUri);
                if (Parameters.Count > 0) {
                    sw.Write("?");
                    foreach (var p in Parameters) {
                        sw.WriteFormat("{0}={1}&", p.Key, p.Value);
                    }
                    sw.TrimEnd('&');
                }
                url = sw.ToString();
            }

            var request = (HttpWebRequest) WebRequest.Create(url);
            request.Accept = "*/*";
            request.Method = "GET";

            var response = request.GetResponse();
            return response.ResponseUri;
        }
Exemple #5
0
        public string CreateXOAuthKey()
        {
            var requestParams = CreateOAuthRequestParams();

            if (_sign) {
                var signature = OAuthSignature.Create(this, requestParams);
                requestParams.Add(OAuthParameters.OAuthSignature, signature);
            }

            string token;
            using (var sw = new StringWriter()) {
                sw.Write("GET ");
                sw.Write(RequestEndpoint.AbsoluteUri);
                sw.Write(Characters.Space);

                var sorted = new SortedDictionary<string, string>();

                foreach (var p in Parameters) {
                    sorted.Add(p.Key, p.Value);
                }

                foreach (var p in requestParams) {
                    sorted.Add(p.Key, p.Value);
                }

                foreach (var p in sorted) {
                    sw.WriteFormat("{0}=\"{1}\",", p.Key, p.Value);
                }

                sw.TrimEnd(',');
                token = sw.ToString();
            }

            var bytes = Encoding.ASCII.GetBytes(token);
            return Convert.ToBase64String(bytes);
        }
Exemple #6
0
        private static IEnumerable<char> NormalizeRequestParameters(IEnumerable<KeyValuePair<string, string>> @params)
        {
            using (var sw = new StringWriter()) {
                foreach (var pair in @params) {
                    sw.Write(pair.Key);
                    sw.Write("=");
                    sw.Write(pair.Value);
                    sw.Write("&");
                }

                sw.TrimEnd('&');
                return sw.ToString();
            }
        }