public void ProcessRequest(MIGClientRequest request, MIGInterfaceCommand migcmd) { switch (migcmd.command) { case "Events.Push": //TODO: implemet security and trust mechanism string objstream = new StreamReader(request.InputStream).ReadToEnd(); ModuleEvent mev = JsonConvert.DeserializeObject <ModuleEvent>(objstream); // Module mod = _hg.Modules.Find(delegate(Module o) { return(o.Domain == mev.Module.Domain && o.Address == mev.Module.Address); }); if (mod == null) { mod = mev.Module; _hg.Modules.Add(mod); } else { Utility.ModuleParameterSet(mod, mev.Parameter.Name, mev.Parameter.Value); } // "<ip>:<port>" remote endpoint port is passed as the first argument from the remote point itself mod.RoutingNode = request.RequestOrigin + (migcmd.GetOption(0) != "" ? ":" + migcmd.GetOption(0) : ""); // _hg.LogBroadcastEvent(mev.Module.Domain, mev.Module.Address, request.RequestOrigin, mev.Parameter.Name, mev.Parameter.Value); _hg.RouteParameterChangedEvent(request.RequestOrigin, mod, mev.Parameter); break; } }