public FormMain() { InitializeComponent(); _fxGUIList = new List <IConfigPage>(); _entityGUIList = new List <IConfigUI>(); _agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); }
private void LoadSetting(EntityAssemblyConfig entityCfg) { _entityAgent = new EntityConfigAgent(entityCfg, Program.Log); if (!_entityAgent.Initialize(entityCfg.InitializeArgument)) { return; } LoadMainConfigTabPage(); LoadTransformPage(); _cfgConfig = Program.ConfigMgr.Config.GetMessageEntityConfigConfig(entityCfg.EntityInfo.Name); if (_cfgConfig != null) { this.Size = _cfgConfig.ConfigWindowSize; } this.Text = entityCfg.EntityInfo.Name + " Configuration"; }
static void DeleteChannel(string[] args) { int count = 3; if (args.Length < count) { Program.Log.Write("Arguement is not enough."); return; } try { string type = args[1]; string entityID = args[2]; Guid eID = new Guid(entityID); switch (type.ToLowerInvariant()) { case "publisher": { EntityConfigAgent agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); if (agent.Initialize(Program.ConfigMgt.Config.EntityAssembly.InitializeArgument)) { EntityConfigBase cfg = agent.EntityConfig; if (cfg == null || cfg.SubscribeConfig == null) { Program.Log.Write("Cannot read SubscribeConfig from configuration file."); } else { List <PushChannelConfig> dlist = new List <PushChannelConfig>(); foreach (PushChannelConfig c in cfg.SubscribeConfig.Channels) { if (c.SenderEntityID == eID) { dlist.Add(c); } } foreach (PushChannelConfig c in dlist) { cfg.SubscribeConfig.Channels.Remove(c); } agent.EntityConfigInstance.SaveConfiguration(); } agent.Uninitialize(); } break; } case "responser": { EntityConfigAgent agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); if (agent.Initialize(Program.ConfigMgt.Config.EntityAssembly.InitializeArgument)) { EntityConfigBase cfg = agent.EntityConfig; if (cfg == null || cfg.RequestConfig == null) { Program.Log.Write("Cannot read SubscribeConfig from configuration file."); } else { List <PushChannelConfig> dlist = new List <PushChannelConfig>(); foreach (PushChannelConfig c in cfg.RequestConfig.Channels) { if (c.ReceiverEntityID == eID) { dlist.Add(c); } } foreach (PushChannelConfig c in dlist) { cfg.RequestConfig.Channels.Remove(c); } agent.EntityConfigInstance.SaveConfiguration(); } agent.Uninitialize(); } break; } } } catch (Exception err) { Log.Write(err); } }
static bool UpdateChannelInResponser(PullChannelConfig cfg) { EntityAssemblyConfig acfg = null; foreach (EntityContractBase c in Program.SolutionMgt.Config.Entities) { if (c.EntityID == cfg.ReceiverEntityID) { acfg = c.AssemblyConfig; break; } } if (acfg == null) { Program.Log.Write(LogType.Error, "Cannot find responser in the integration solution: " + cfg.ReceiverEntityName + " (" + cfg.ReceiverEntityID + ")"); return(false); } bool ret = false; acfg = GetEntityAssemblyConfigForEntity(acfg); EntityConfigAgent agent = new EntityConfigAgent(acfg, Program.Log); if (agent.Initialize(acfg.InitializeArgument)) { EntityConfigBase ecfg = agent.EntityConfig; if (ecfg == null) { Program.Log.Write(LogType.Error, "Cannot get responser configuration: " + cfg.ReceiverEntityName + " (" + cfg.ReceiverEntityID + ")"); } else { List <PullChannelConfig> deleteList = new List <PullChannelConfig>(); foreach (PullChannelConfig chn in ecfg.ResponseConfig.Channels) { if (chn.SenderEntityID == cfg.SenderEntityID) { deleteList.Add(chn); break; } } foreach (PullChannelConfig chn in deleteList) { ecfg.ResponseConfig.Channels.Remove(chn); } ecfg.ResponseConfig.Channels.Add(cfg); if (agent.EntityConfigInstance.SaveConfiguration()) { ret = true; Program.Log.Write("Save responser configuration succeeded: " + cfg.ReceiverEntityName + " (" + cfg.ReceiverEntityID + ")"); } else { Program.Log.Write(LogType.Error, "Save responser configuration failed: " + cfg.ReceiverEntityName + " (" + cfg.ReceiverEntityID + ")"); } } agent.Uninitialize(); } return(ret); }
static void ApplyChannelConfigurations(bool showMsg) { try { EntityConfigAgent agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); if (agent.Initialize(Program.ConfigMgt.Config.EntityAssembly.InitializeArgument)) { EntityConfigBase cfg = agent.EntityConfig; if ((cfg.Interaction & InteractionTypes.Subscriber) == InteractionTypes.Subscriber) { bool res = true; foreach (PushChannelConfig chn in cfg.SubscribeConfig.Channels) { if (!UpdateChannelInPublisher(chn)) { res = false; break; } } if (res) { string str = "Apply channels to publisher succeeded."; Log.Write(str); if (showMsg) { MessageBox.Show(str, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { string str = "Apply channels to publisher failed."; Log.Write(LogType.Error, str); if (showMsg) { MessageBox.Show(str, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } if ((cfg.Interaction & InteractionTypes.Requester) == InteractionTypes.Requester) { bool res = true; foreach (PullChannelConfig chn in cfg.RequestConfig.Channels) { if (!UpdateChannelInResponser(chn)) { res = false; break; } } if (res) { string str = "Apply channels to responser succeeded."; Log.Write(str); if (showMsg) { MessageBox.Show(str, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { string str = "Apply channels to responser failed."; Log.Write(LogType.Error, str); if (showMsg) { MessageBox.Show(str, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } //else //{ // MessageBox.Show("No channel need to be applied.", "Information", // MessageBoxButtons.OK, MessageBoxIcon.Information); //} agent.Uninitialize(); } } catch (Exception err) { Log.Write(err); } }
static void AddAndApplyChannel(string[] args) { int count = 6; if (args.Length < count) { Program.Log.Write("Arguement is not enough."); return; } try { string type = args[1]; string entityID = args[2]; string entityName = args[3]; string messageType = args[4]; string protocolType = args[5]; switch (type.ToLowerInvariant()) { case "publisher": { MessageType mt = MessageType.Parse(messageType); if (mt == null) { Program.Log.Write("Message Type can not be parse from: " + messageType); return; } PushChannelConfig c = new PushChannelConfig(); c.ReceiverEntityID = Program.ConfigMgt.Config.EntityAssembly.EntityInfo.EntityID; c.ReceiverEntityName = Program.ConfigMgt.Config.EntityAssembly.EntityInfo.Name; c.ProtocolType = (ProtocolType)Enum.Parse(typeof(ProtocolType), protocolType); c.Subscription.Type = RoutingRuleType.MessageType; c.Subscription.MessageTypeList.Add(mt); c.SenderEntityID = new Guid(entityID); c.SenderEntityName = entityName; switch (c.ProtocolType) { case ProtocolType.LPC: ChannelHelper.GenerateLPCChannel(c); break; case ProtocolType.MSMQ: ChannelHelper.GenerateMSMQChannel(c); break; default: Program.Log.Write("Following protocol type is not supported by now: " + c.ProtocolType.ToString()); return; } EntityConfigAgent agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); if (agent.Initialize(Program.ConfigMgt.Config.EntityAssembly.InitializeArgument)) { EntityConfigBase cfg = agent.EntityConfig; if (cfg == null) { Program.Log.Write("Cannot read configuration file."); } else { if (cfg.SubscribeConfig == null) { cfg.SubscribeConfig = new SubscribeConfig(); } cfg.SubscribeConfig.Channels.Add(c); if (agent.EntityConfigInstance.SaveConfiguration()) { Program.Log.Write("Write configuration file successfully."); } else { Program.Log.Write("Cannot write configuration file."); } } agent.Uninitialize(); } break; } case "responser": { PullChannelConfig c = new PullChannelConfig(); c.ReceiverEntityID = Program.ConfigMgt.Config.EntityAssembly.EntityInfo.EntityID; c.ReceiverEntityName = Program.ConfigMgt.Config.EntityAssembly.EntityInfo.Name; c.ProtocolType = (ProtocolType)Enum.Parse(typeof(ProtocolType), protocolType); c.SenderEntityID = new Guid(entityID); c.SenderEntityName = entityName; switch (c.ProtocolType) { case ProtocolType.LPC: ChannelHelper.GenerateLPCChannel(c); break; default: Program.Log.Write("Following protocol type is not supported by now: " + c.ProtocolType.ToString()); return; } EntityConfigAgent agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); if (agent.Initialize(Program.ConfigMgt.Config.EntityAssembly.InitializeArgument)) { EntityConfigBase cfg = agent.EntityConfig; if (cfg == null) { Program.Log.Write("Cannot read configuration file."); } else { if (cfg.RequestConfig == null) { cfg.RequestConfig = new RequestConfig(); } cfg.RequestConfig.Channels.Add(c); if (agent.EntityConfigInstance.SaveConfiguration()) { Program.Log.Write("Write configuration file successfully."); } else { Program.Log.Write("Cannot write configuration file."); } } agent.Uninitialize(); } break; } } } catch (Exception err) { Program.Log.Write(err); } ApplyChannelConfigurations(false); }
static void RegisterEntityIntoSolution() { try { EntityAssemblyConfig entity = Program.ConfigMgt.Config.EntityAssembly; foreach (EntityContractBase e in SolutionMgt.Config.Entities) { if (e.EntityID == entity.EntityInfo.EntityID) { MessageBox.Show("Following message entity has already existed in the integration solution.\r\n\r\n" + entity.EntityInfo.Name + " (" + entity.EntityInfo.EntityID + ")", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } EntityConfigAgent agent = new EntityConfigAgent(Program.ConfigMgt.Config.EntityAssembly, Program.Log); if (agent.Initialize(Program.ConfigMgt.Config.EntityAssembly.InitializeArgument)) { EntityConfigBase cfg = agent.EntityConfig; EntityContractBase c = new EntityContractBase(); c.Name = cfg.Name; c.DeviceName = cfg.DeviceName; c.Direction = cfg.Direction; c.Interaction = cfg.Interaction; c.Description = cfg.Description; c.EntityID = cfg.EntityID; if (cfg.PublishConfig != null) { c.Publication = cfg.PublishConfig.Publication; } if (cfg.ResponseConfig != null) { c.ResponseDescription = cfg.ResponseConfig.ResponseContract; } c.AssemblyConfig = GetEntityAssemblyConfigForSolution(entity); //string webConfigFilePath = Path.Combine(Application.StartupPath, EntityWebConfig.EntityWebConfigFileName); //ConfigManager<EntityWebConfig> webmgt = new ConfigManager<EntityWebConfig>(webConfigFilePath); //if (webmgt.Load()) //{ // Log.Write("Register entity with default web config at: " + webConfigFilePath); // SolutionMgt.Config.RegisterEntity(c, webmgt.Config); //} //else //{ // Log.Write("Register entity without default web config."); // SolutionMgt.Config.RegisterEntity(c); //} Log.Write("Registering entity."); SolutionMgt.Config.RegisterEntity(c); if (SolutionMgt.Save()) { Log.Write("Save solution dir file succeeded. " + SolutionMgt.FileName); MessageBox.Show("Register following message entity into the integration solution succeeded.\r\n\r\n" + entity.EntityInfo.Name + " (" + entity.EntityInfo.EntityID + ")", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Log.Write(LogType.Error, "Save solution dir file failed."); Log.Write(SolutionMgt.LastError); MessageBox.Show("Register following message entity into the integration solution failed.\r\n\r\n" + entity.EntityInfo.Name + " (" + entity.EntityInfo.EntityID + ")", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information); } agent.Uninitialize(); } } catch (Exception err) { Log.Write(err); } }