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