main
1using System;
2using System.IO;
3using Gorilla.Commons.Infrastructure.Container;
4using gorilla.commons.utility;
5using ProtoBuf;
6using Rhino.Queues.Model;
7
8namespace presentation.windows.common
9{
10 public class MessageHandler : Handler<Message>
11 {
12 DependencyRegistry registry;
13
14 public MessageHandler(DependencyRegistry registry)
15 {
16 this.registry = registry;
17 }
18
19 public void handle(Message item)
20 {
21 var payload = parse_payload_from(item);
22 registry
23 .get_all<Handler>()
24 .each(x => x.handle(payload));
25 }
26
27 object parse_payload_from(Message item)
28 {
29 using (var stream = new MemoryStream(item.Data))
30 {
31 return Serializer.NonGeneric.Deserialize(Type.GetType(item.Headers["type"]), stream);
32 }
33 }
34 }
35}