view Agendas/trunk/src/Agendas.Twitter/oAuthTwitter.cs @ 214:7d838e7d83b3

Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
author alabra
date Wed, 24 Aug 2011 19:49:18 -0300
parents 734d3f0853bf
children 37ddf81333d3
line wrap: on
line source

using System;
using AltNetHispano.Agendas.Configurations;

namespace AltNetHispano.Agendas.Twitter
{
	public class OAuthTwitter
	{
		private readonly ITwitterAdapter _twitterAdapter;

		public OAuthTwitter()
		{
			_twitterAdapter = new TwitterAdapter();
		}

		public OAuthTwitter(ITwitterAdapter twitterAdapter)
		{
			_twitterAdapter = twitterAdapter;
		}

		private string ConsumerKey
		{
			get { return AgendasConfigurationManager.Publicadores.Twitter.SignIn.ConsumerKey; }
		}

		private string ConsumerSecret
		{
			get { return AgendasConfigurationManager.Publicadores.Twitter.SignIn.ConsumerSecret; }
		}

		public Uri AuthorizationLinkGet(string callbackAddress)
		{
			var request = _twitterAdapter.BuildAuthorizationUri(ConsumerKey, ConsumerSecret, callbackAddress);
			return request;
		}

		public string AccessTokenGet(string requestToken, string verifier)
		{
			return _twitterAdapter.GetAccessToken(ConsumerKey, ConsumerSecret, requestToken, verifier);
		}

		public static string GetResponseContent(string response, string tagName)
		{
			var tagStart = "\"" + tagName + "\":";
			var tagEnd = ",";

			var start = response.IndexOf(tagStart) + tagStart.Length;
			if (start > tagStart.Length)
			{
				var end = response.IndexOf(tagEnd, start);
				if (end > 0)
				{
					return response.Substring(start + 1, end - start - 2);
				}
			}
			return string.Empty;
		}
	}
}