Mercurial > altnet-hispano
annotate 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 |
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 } |