annotate Agendas/trunk/src/Agendas.Blog/Impl/PostWriterWebServiceAdapter.cs @ 120:c3573defd18f

Agregado de Fecha, Usuario y Successful en TrackLog Modificacion de publicador de blog para usar TrackLog Agregado de TrackLog en el test de crud de eventos Fix en publicador de twitter para que no twitee si ya se encuentra en TrackLog pero con Successful en true
author Jorge@Jorge-PC
date Fri, 24 Jun 2011 21:18:21 -0300
parents 1d820f17fc75
children
rev   line source
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
1 using System;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
2 using System.Globalization;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
3 using System.Security.Cryptography;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
4 using System.ServiceModel;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
5 using Agendas.Blog.Exceptions;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
6 using Agendas.Blog.PortalSitefinity;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
7
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
8 namespace Agendas.Blog.Impl
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
9 {
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
10 public class PostWriterWebServiceAdapter : IPostWriterWebService
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
11 {
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
12 private readonly BlogPublicadorConfig _config;
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
13 private readonly PostWriterWebServiceSoapClient _service;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
14
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
15 public PostWriterWebServiceAdapter(BlogPublicadorConfig config)
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
16 {
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
17 _config = config;
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
18 _service = new PortalSitefinity.PostWriterWebServiceSoapClient(new BasicHttpBinding(),
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
19 new EndpointAddress(config.PostWriterServiceUrl));
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
20 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
21
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
22 private static string buildToken(string key, DateTime time)
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
23 {
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
24 var aux = key + time.ToString(CultureInfo.InvariantCulture);
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
25
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
26 var enc = System.Text.Encoding.ASCII.GetEncoder();
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
27
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
28 var data = new byte[aux.Length];
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
29 enc.GetBytes(aux.ToCharArray(), 0, aux.Length, data, 0, true);
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
30
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
31 var md5 = new MD5CryptoServiceProvider();
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
32 var result = md5.ComputeHash(data);
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
33
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
34 return BitConverter.ToString(result).Replace("-", "").ToLower();
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
35 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
36
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
37 public void WriteBlogPost(string postTitle, string postHtmlContent, string postAuthor, bool setPublicationDate)
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
38 {
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
39 var securityToken = getSecurityToken();
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
40 _service.WriteBlogPost(securityToken, _config.BlogName, postTitle, postHtmlContent, postAuthor, setPublicationDate);
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
41 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
42
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
43 private string getSecurityToken()
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
44 {
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
45 var now = DateTime.UtcNow;
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
46 now = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0, 0);
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
47
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 99
diff changeset
48 return buildToken(_config.BlogWriterMasterKey, now);
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
49 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
50 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents:
diff changeset
51 }