/// <summary> /// 添加新的节点 /// </summary> /// <returns></returns> public ActionResult AddNewNode(string CallBackIndexView = "Index") { //获取合法的新节点ID int targetDefaultNodeId = 0; lock (((ICollection)ConfigNodeList).SyncRoot) { do { targetDefaultNodeId++; } while (ConfigNodeList.ContainsKey(targetDefaultNodeId.ToString())); //添加默认的数据 ResponseNodeConfig newOne = new ResponseNodeConfig(targetDefaultNodeId.ToString()); DefaultDealingHandlerConfig dealing = new DefaultDealingHandlerConfig() { DataType = DataTypes.Text, RawData = "呈現的文本" }; newOne.DealingHandlerConfig = dealing; newOne.DoneHandlerConfig = new DefaultDoneHandlerConfig(); ConfigNodeList.Add(newOne.NodeID, newOne); //写入到配置文件 ResponseConfiguration.SaveConfig_ResponseChain(ConfigNodeList.Values.ToArray()); ViewData["CurrentEditedNode"] = newOne; //进入编辑状态 Session["AdvantanceConfig_CustomHandler_Result"] = new Dictionary <Type, IConfigClassOfCustomHandler>(); //每次进去编辑状态,清空自定义处理器的参数配置结果 } LoadDatas(); ViewBag.CallBackIndexView = CallBackIndexView; return(View("Index")); }
public HttpSend( HttpEntityManager httpEntityManager, ResponseConfiguration configuration, string data, Message message) : base(Guid.Empty, null, httpEntityManager) { Data = data; Configuration = configuration; Message = message; }
/// <summary> /// 保存单个节点的配置 /// </summary> private void SaveOneConfig(ResponseNodeConfig configNode, string oldNodeId) { lock (((ICollection)ConfigNodeList).SyncRoot) { //删除旧的 if (ConfigNodeList.ContainsKey(oldNodeId)) { ConfigNodeList.Remove(oldNodeId); } //新增 ConfigNodeList[configNode.NodeID] = configNode; } //写入到配置文件 ResponseConfiguration.SaveConfig_ResponseChain(ConfigNodeList.Values.ToArray()); }
/// <summary> /// 删除指定的节点 /// </summary> /// <returns></returns> public ActionResult Delete(string nodeID, string CallBackIndexView = "Index") { if (ConfigNodeList != null) { lock (((ICollection)ConfigNodeList).SyncRoot) { if (nodeID != ConstString.ROOT_NODE_ID && ConfigNodeList.ContainsKey(nodeID)) { #region 自定义处理器的额外处理 //自定义处理的参数配置 if (ConfigNodeList[nodeID].DealingHandlerConfig is CustomHandlerConfig) { CustomHandlerConfig hd = ConfigNodeList[nodeID].DealingHandlerConfig as CustomHandlerConfig; Type targetType = CustomHandlerConfig.GetICustomHandlerTypeFromCurrentDomain(hd.HandlerTypeName); bool isConfigable = typeof(ICustomHandlerConfigable).IsAssignableFrom(targetType); if (isConfigable) { //获取配置类 Type configClassType = ConfigClassOfCustomHandlerHelper.GetConfigClassType(targetType); if (configClassType != null) { //加载 XDocument xdoc = ConfigClassOfCustomHandlerHelper.LoadConfigByType(configClassType); ConfigClassOfCustomHandlerHelper.RemoveConfig(xdoc, nodeID); //保存 ConfigClassOfCustomHandlerHelper.SaveConfigByType(configClassType, xdoc); } } } #endregion ConfigNodeList.Remove(nodeID); //写入到配置文件 ResponseConfiguration.SaveConfig_ResponseChain(ConfigNodeList.Values.ToArray()); } } } LoadDatas(); return(View(CallBackIndexView)); }
public HttpBeginSend(Guid correlationId, IEnvelope envelope, HttpEntityManager httpEntityManager, ResponseConfiguration configuration) : base(correlationId, envelope, httpEntityManager) { Configuration = configuration; }