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();
            }
        }
		public void ReadOnlyDictionaryOverloadTest()
		{
			var now = DateTime.Now;
			var keyValues = new Dictionary<string, object>()
			{
				{ "abc", 123 },
				{ "defgh", now },
				{ "ijkl", "XYZ" }
			};

			var tw = new StringWriter();
			tw.WriteFormat(
				"AAA{defgh}BBB{abc}CCC{ijkl}DDD",
				keyValues);

			Assert.AreEqual("AAA" + now + "BBB123CCCXYZDDD", tw.ToString());
		}
		public void DictionaryWithComparerOverloadTest()
		{
			var now = DateTime.Now;
			IDictionary<string, object> keyValues = new Dictionary<string, object>(
				StringComparer.InvariantCultureIgnoreCase)
			{
				{ "aBc", 123 },
				{ "dEFgh", now },
				{ "ijKl", "XYZ" }
			};

			var tw = new StringWriter();
			tw.WriteFormat(
				"AAA{Defgh}BBB{abC}CCC{IjkL}DDD",
				keyValues);

			Assert.AreEqual("AAA" + now + "BBB123CCCXYZDDD", tw.ToString());
		}
		public void EnumerableOverloadWithComparerTest()
		{
			var now = DateTime.Now;
			IEnumerable<KeyValuePair<string, object>> keyValues = new[]
			{
				new KeyValuePair<string, object>("aBc", 123),
				new KeyValuePair<string, object>("deFgH", now),
				new KeyValuePair<string, object>("iJKl", "XYZ"),
			};

			var tw = new StringWriter();
			tw.WriteFormat(
				"AAA{Defgh}BBB{abC}CCC{IjkL}DDD",
				StringComparer.InvariantCultureIgnoreCase,
				keyValues);

			Assert.AreEqual("AAA" + now + "BBB123CCCXYZDDD", tw.ToString());
		}
		public void EnumerableOverloadWithNoListTest()
		{
			var now = DateTime.Now;
			var keyValues = new[]
			{
				Tuple.Create("abc", (object)123),
				Tuple.Create("defgh", (object)now),
				Tuple.Create("ijkl", (object)"XYZ")
			}.
			Select(entry => new KeyValuePair<string, object>(entry.Item1, entry.Item2));

			var tw = new StringWriter();
			tw.WriteFormat(
				"AAA{defgh}BBB{abc}CCC{ijkl}DDD",
				keyValues);

			Assert.AreEqual("AAA" + now + "BBB123CCCXYZDDD", tw.ToString());
		}
		public void EnumerableOverloadWithArrayTest()
		{
			var now = DateTime.Now;
			IEnumerable<KeyValuePair<string, object>> keyValues = new[]
			{
				new KeyValuePair<string, object>("abc", 123),
				new KeyValuePair<string, object>("defgh", now),
				new KeyValuePair<string, object>("ijkl", "XYZ"),
			};

			var tw = new StringWriter();
			tw.WriteFormat(
				"AAA{defgh}BBB{abc}CCC{ijkl}DDD",
				keyValues);

			Assert.AreEqual("AAA" + now + "BBB123CCCXYZDDD", tw.ToString());
		}
示例#7
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;
        }
示例#8
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);
        }
示例#9
0
        private static string CreateBaseString(IEnumerable<char> url, IEnumerable<KeyValuePair<string, string>> requestParams, IEnumerable<KeyValuePair<string, string>> additional)
        {
            var combined = new SortedDictionary<string, string>();

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

            foreach (var p in additional) {
                combined.Add(p.Key, HttpEncoder.UrlEncode(p.Value));
            }

            var requestString = NormalizeRequestParameters(combined);

            using (var sw = new StringWriter()) {
                sw.Write("GET&");
                sw.WriteFormat("{0}&", HttpEncoder.UrlEncode(url));
                sw.WriteFormat("{0}", HttpEncoder.UrlEncode(requestString));
                return sw.ToString();
            }
        }