Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs @ 111:90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
author | Nelo@Kenia.neluz.int |
---|---|
date | Wed, 08 Jun 2011 08:40:04 -0300 |
parents | a456eb519e23 |
children | c3573defd18f |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs Wed Jun 08 07:33:14 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs Wed Jun 08 08:40:04 2011 -0300 @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Configuration; +using System.Linq; using AltNetHispano.Agendas.Domain; using Twitterizer; @@ -7,6 +8,18 @@ { public class TwitterPublicador : IPublicador { + private readonly ITwitterAdapter _twitterAdapter; + + public TwitterPublicador() + { + _twitterAdapter = new TwitterAdapter(); + } + + public TwitterPublicador(ITwitterAdapter twitterAdapter) + { + _twitterAdapter = twitterAdapter; + } + public const int LIMITE_MENSAJE = 140; private string ConsumerKey @@ -35,10 +48,16 @@ { foreach (var track in tracks) { - string message; + //Si ya hicimos el twitt de este track, no volvemos a hacerlo + if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Twitter)) continue; + var twitt = BuildTwitt(track); if (!string.IsNullOrWhiteSpace(twitt)) + { + string message; Publicar(twitt, out message); + track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message)); + } } } @@ -74,7 +93,7 @@ AccessTokenSecret = AccessTokenSecret }; - var response = TwitterStatus.Update(tokens, status); + var response = _twitterAdapter.UpdateStatus(tokens, status); message = response.ErrorMessage; return response.Result == RequestResult.Success;