Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Blog/Impl/PostWriterWebServiceAdapter.cs @ 300:48ab8788bd19
#200: Patrocinadores: Agregar link al sitio web.
author | juanjose.montesdeocaarbos |
---|---|
date | Mon, 27 Feb 2012 14:45:12 -0300 |
parents | 1d820f17fc75 |
children |
line wrap: on
line source
using System; using System.Globalization; using System.Security.Cryptography; using System.ServiceModel; using Agendas.Blog.Exceptions; using Agendas.Blog.PortalSitefinity; namespace Agendas.Blog.Impl { public class PostWriterWebServiceAdapter : IPostWriterWebService { private readonly BlogPublicadorConfig _config; private readonly PostWriterWebServiceSoapClient _service; public PostWriterWebServiceAdapter(BlogPublicadorConfig config) { _config = config; _service = new PortalSitefinity.PostWriterWebServiceSoapClient(new BasicHttpBinding(), new EndpointAddress(config.PostWriterServiceUrl)); } private static string buildToken(string key, DateTime time) { var aux = key + time.ToString(CultureInfo.InvariantCulture); var enc = System.Text.Encoding.ASCII.GetEncoder(); var data = new byte[aux.Length]; enc.GetBytes(aux.ToCharArray(), 0, aux.Length, data, 0, true); var md5 = new MD5CryptoServiceProvider(); var result = md5.ComputeHash(data); return BitConverter.ToString(result).Replace("-", "").ToLower(); } public void WriteBlogPost(string postTitle, string postHtmlContent, string postAuthor, bool setPublicationDate) { var securityToken = getSecurityToken(); _service.WriteBlogPost(securityToken, _config.BlogName, postTitle, postHtmlContent, postAuthor, setPublicationDate); } private string getSecurityToken() { var now = DateTime.UtcNow; now = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0, 0); return buildToken(_config.BlogWriterMasterKey, now); } } }