Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs @ 158:734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
Agregando la opción de habilitar / deshabilitar un publicador
author | nelopauselli |
---|---|
date | Fri, 05 Aug 2011 16:55:18 -0300 |
parents | c3573defd18f |
children | 2a336a6a76b5 |
line wrap: on
line source
using System; using System.Collections.Generic; using System.Linq; using AltNetHispano.Agendas.Configurations; using AltNetHispano.Agendas.Domain; namespace Agendas.Blog.Impl { public class BlogPublicador : IPublicador { private readonly IPostWriterFactory _postWriterFactory; public BlogPublicador() : this( new PostWriterFactory( new PostWriterWebServiceAdapter( new BlogPublicadorConfig(AgendasConfigurationManager.Publicadores.Blog.Writer.PostWriterServiceUrl, AgendasConfigurationManager.Publicadores.Blog.Writer.BlogName, AgendasConfigurationManager.Publicadores.Blog.Writer.BlogWriterMasterKey)))) { } public BlogPublicador(IPostWriterFactory postWriterFactory) { _postWriterFactory = postWriterFactory; } public void Publicar(IEnumerable<Track> tracks) { if (!AgendasConfigurationManager.Publicadores.Blog.Enabled) return; foreach (var track in tracks) { if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Blog && l.Successful)) continue; try { _postWriterFactory.GetPostWriter(track.Accion).WritePost(track); track.LogAdd(new TrackLog(TrackLogPropietario.Blog, string.Empty, track.Usuario, true)); } catch (Exception ex) { track.LogAdd(new TrackLog(TrackLogPropietario.Blog, ex.Message, track.Usuario, false)); } } } } }