Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Blog/Impl/PostWriterWebServiceAdapter.cs @ 109:6bd9be78caa0
Merge
author | Nelo@Kenia.neluz.int |
---|---|
date | Tue, 07 Jun 2011 23:21:07 -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); } } }