public void ParseTest8() { var target = new ConditionComponent(new Soba()); Assert.Equal(" body1 ", target.Eval("[(!false){ body1 }else{ body2 }]")); Assert.Equal(Value.Empty, target.Eval("[(!true){ body1 }]")); }
private void Re_OnPropertyChange(ConditionComponent re) { TreeNode tn = GetReverseLookup(re); UpdateNodeIcon(tn); tn.Text = re.ToString(); }
protected void GetFilterByKind(ref ConditionComponent paraWhere, string inDataBase = "") { if (paraWhere != null) { string dataFilterByKind = inDataBase == ""?" BelongFactory = '" + LoginUser.BelongFactory + "'":" 1=1 "; if (LoginUser.Kind == "B") { dataFilterByKind += " and sellerid =" + LoginUser.AssocNo; } else if (LoginUser.Kind == "C") { dataFilterByKind += " and HospitalID =" + LoginUser.AssocNo; } else if (LoginUser.Kind == "D" && inDataBase == "") { dataFilterByKind += " and DoctorID =" + LoginUser.AssocNo; } else if (LoginUser.Kind == "D" && inDataBase != "") { dataFilterByKind += " and doctor = (select top 1 doctor from doctor where id = " + LoginUser.AssocNo + ")"; } if (dataFilterByKind != "") { if (paraWhere.sbComponent.Length == 0) { paraWhere.sbComponent.Append(dataFilterByKind); } else { paraWhere.sbComponent.Append(" and " + dataFilterByKind); } } } }
/// <summary> /// 修改实体信息 /// 该实体是根据主键修改 /// </summary> /// <param name="entity">泛型实例</param> /// <param name="component">泛型实例</param> /// <returns></returns> public int Update(IEntity entity, ConditionComponent component) { IDataParameter[] param = null; string sql = Factory.CreateUpdateSql(entity, out param, component); return(int.Parse(BaseHelper.ExecuteNonQuery(sql, param as OracleParameter[]).ToString())); }
private void UpdateNodeIcon(TreeNode tn) { ConditionComponent re = (ConditionComponent)tn.Tag; if (re is ConditionSingle) { tn.ImageKey = "function"; tn.SelectedImageKey = "function"; } if (re is ConditionGroup) { switch (((ConditionGroup)re).Grouping) { case ConditionGroup.CndGroupingEnum.And: tn.ImageKey = "group_and"; tn.SelectedImageKey = "group_and"; break; case ConditionGroup.CndGroupingEnum.Or: tn.ImageKey = "group_or"; tn.SelectedImageKey = "group_or"; break; case ConditionGroup.CndGroupingEnum.Xor: tn.ImageKey = "group_xor"; tn.SelectedImageKey = "group_xor"; break; case ConditionGroup.CndGroupingEnum.Not: tn.ImageKey = "group_not"; tn.SelectedImageKey = "group_not"; break; } } }
private void btnAddCondition_Click(object sender, EventArgs e) { ConditionSingle re = new ConditionSingle(); TreeNode tn = new TreeNode(); AttachConditionComponentToNode(tn, re); TreeNode tx = trvNodes.SelectedNode; ConditionComponent rx = (ConditionComponent)tx.Tag; if (rx is ConditionSingle) { tx = GetReverseLookup(rx.Parent); re.Parent = rx.Parent; } if (rx is ConditionGroup) { tx = GetReverseLookup(rx); re.Parent = (ConditionGroup)rx; } re.Parent.Children.Add(re); tx.Nodes.Add(tn); RecolorStartingFromNode(tx, tx.Checked); TreeSort(); trvNodes.SelectedNode = tn; if (tx.IsExpanded == false) { tx.Expand(); } expLeft.Focus(); }
public void parseTest13() { var mockEnv = new Mock <IEnvironment>(); var mockUVar = new Mock <IUserVariable>(); ConditionComponent target = new ConditionComponent(mockEnv.Object, mockUVar.Object); Assert.AreEqual(" body2 ", target.parse("[(!str1 === str1){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(!\"str1 \"===\" str1\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(! str1 == str1){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(! \"str1 \"==\" str1\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!02 == 2){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(!02 === 2){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(!str1 !== str1){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!\"str1 \"!==\" str1\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(! str1 != str1){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!\"str1 \"!=\" str1\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(!02 != 2){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(! 02 !== 2){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!Test123Data ~= 12){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(! Test123Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(! Test 123 Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!Test 123 Data ~= Data){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(!1 > 1){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!1 >= 1){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(! 1 > 01){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(!01 >= 1){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(! 1 < 1){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(! 1 <= 1){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(!1 < 01){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(! 01 <= 1){ body1 }else{ body2 }]")); }
/// <summary> /// 删除实体对象 /// 该方法是根据实体对象主键删除数据 /// </summary> /// <param name="entity">实体公共接口</param> /// <returns></returns> //public int Delete(IEntity entity) //{ // IDataParameter[] param = null; // string sql = Factory.CreateDeleteSql(entity,out param); // using (IDbProvider provider = new SqlProvider()) // { // return BaseHelper.ExecuteNonQuery( sql, param); // } //} /// <summary> /// 根据实体多个属性删除数据 /// 实体中必须包含该属性 /// 传递参数数组不能为空 /// </summary> /// <param name="component">实体属性公共接口</param> /// <param name="bolType">实体属性名称数组</param> /// <returns></returns> public int Delete <T>(ConditionComponent component, bool bolType) where T : IEntity { IDataParameter[] param = null; string sql = Factory.CreateDeleteSql(typeof(T), component, out param, bolType); return(BaseHelper.ExecuteNonQuery(sql, param)); }
public void ParseTest13() { var target = new ConditionComponent(new Soba()); Assert.Equal(" body2 ", target.Eval("[(!str1 === str1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(!\"str1 \"===\" str1\"){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(! str1 == str1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(! \"str1 \"==\" str1\"){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!02 == 2){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(!02 === 2){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(!str1 !== str1){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!\"str1 \"!==\" str1\"){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(! str1 != str1){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!\"str1 \"!=\" str1\"){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(!02 != 2){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(! 02 !== 2){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!Test123Data ~= 12){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(! Test123Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(! Test 123 Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!Test 123 Data ~= Data){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(!1 > 1){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!1 >= 1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(! 1 > 01){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(!01 >= 1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(! 1 < 1){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(! 1 <= 1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(!1 < 01){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(! 01 <= 1){ body1 }else{ body2 }]")); }
/// <summary> /// 根据某个表名查询实体集合(分页) /// </summary> /// <typeparam name="T">泛型类型</typeparam> /// <param name="strTableName">属性名称</param> /// <param name="fieldShow">属性名称</param> /// <param name="pageSize">属性名称</param> /// <param name="currentPageIndex">属性名称</param> /// <param name="intCountPage">属性值</param> /// <param name="component">属性值</param> /// <returns></returns> public IList <T> GetList <T>(string strTableName, string fieldShow, int pageSize, int currentPageIndex, int intCountPage, ConditionComponent component) where T : class { IDataParameter[] param = null; StringBuilder sbSQL = new StringBuilder(); sbSQL.Append(" select "); sbSQL.Append(fieldShow); //此功能暂未实现 sbSQL.Append(" from "); sbSQL.Append(strTableName); if (component != null && component.sbComponent.Length > 0) { sbSQL.Append(" where "); sbSQL.Append(component.sbComponent.ToString()); } intRowCount_ = int.Parse(BaseHelper.ExecuteScalar(sbSQL.ToString().Replace(fieldShow, "count(*)")).ToString()); intPageNum_ = pageSize; //string strSql = Factory.CreatePageSql(typeof(T),pageSize, currentPageIndex, intCountPage, sbSQL.ToString()); string strSql = Factory.CreatePageSql(typeof(T), pageSize, currentPageIndex, intCountPage, sbSQL.ToString()); // return BaseHelper.Query(strSql); return(BaseHelper.ConvertToList <T>(BaseHelper.ExecuteDataReader(strSql, param as OracleParameter[]))); }
/// <summary> /// 根据多个属性查询实体集合 /// 该查询方式附加查询组建 /// </summary> /// <typeparam name="T">类型类</typeparam> /// <param name="dic">属性键值对</param> /// <param name="component">查询组件</param> /// <returns></returns> public IList <T> GetListTop <T>(IDictionary <string, object> dic, ConditionComponent component) where T : class { IDataParameter[] param = null; string sql = Factory.CreateQueryByPropertySql(typeof(T), dic, out param, component); return(BaseHelper.ConvertToList <T>(BaseHelper.ExecuteDataReader(sql, param as OracleParameter[]))); }
public void parseTest5() { var mockEnv = new Mock <IEnvironment>(); var mockUVar = new Mock <IUserVariable>(); ConditionComponent target = new ConditionComponent(mockEnv.Object, mockUVar.Object); target.parse("[ (!) { body1 } ]"); }
public void DisclosureTest3() { var target = new ConditionComponent(new Soba()); Assert.Throws <IncorrectSyntaxException>(() => target.Eval("[( 1 < 2 && () || (((2 >= 2) && true)) ){yes}else{no}]") ); }
public void ParseTest3() { var target = new ConditionComponent(new Soba()); Assert.Throws <IncorrectSyntaxException>(() => target.Eval("[ (!) { body1 } ]") ); }
public void ParseTest17() { var target = new ConditionComponent(new Soba()); Assert.Throws <System.FormatException>(() => target.Eval("[(2 > 1test ){ body1 }else{ body2 }]") ); }
/// <summary> /// 根据某个实体属性查询实体集合 /// </summary> /// <typeparam name="T">泛型类型</typeparam> /// <param name="iTop">属性名称</param> /// <param name="strTableName">属性名称</param> /// <param name="component">属性值</param> /// <returns></returns> public IList <T> GetListTop <T>(int iTop, ConditionComponent component) where T : class { IDataParameter[] param = null; string strWhere = ((component == null || component.sbComponent == null) ? "" : component.sbComponent.ToString()); string sql = Factory.CreateQuerySql(typeof(T), "*", strWhere, iTop); strOrderString = ""; return(BaseHelper.ConvertToList <T>(BaseHelper.ExecuteDataReader(sql, param))); }
public void compositeTest6() { ConditionComponent target = new ConditionComponent((new Mock <IEnvironment>()).Object, (new Mock <IUserVariable>()).Object); Assert.AreEqual("no", target.parse("[( (1 < 2 && 2 == 2 &&(((false || 2 >= 2) && (1 && (false) && true)))) ){yes}else{no}]")); Assert.AreEqual("no", target.parse("[( (1 < 2 && 2 == 2 &&(((false || 2 >= 2) && (1 > 7 && true)))) ){yes}else{no}]")); Assert.AreEqual("yes", target.parse("[( (1 < 2 && 2 == 2 ||(((2 >= 2) && true))) ){yes}else{no}]")); Assert.AreEqual("yes", target.parse("[( (1 < 2 && 2 == 2 || (((2 >= 2) && true))) ){yes}else{no}]")); }
public void parseTest4() { var mockEnv = new Mock <IEnvironment>(); var mockUVar = new Mock <IUserVariable>(); ConditionComponent target = new ConditionComponent(mockEnv.Object, mockUVar.Object); Assert.AreEqual(Value.Empty, target.parse("[ (true * 1) { body1 } ]")); Assert.AreEqual(" body1 ", target.parse("[ (!true * 1) { body1 } ]")); }
public void ParseTest11() { var target = new ConditionComponent(new Soba()); Assert.Equal(" body1 ", target.Eval("[(Test123Data ~= 12){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(Test123Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(Test 123 Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(Test 123 Data ~= Data){ body1 }else{ body2 }]")); }
public void CompositeTest5() { var target = new ConditionComponent(new Soba()); Assert.Equal("no", target.Eval("[( (1 < 2 && 2 == 2 &&(((false || 2 >= 2) && (1 && (false) && true)))) ){yes}else{no}]")); Assert.Equal("no", target.Eval("[( (1 < 2 && 2 == 2 &&(((false || 2 >= 2) && (1 > 7 && true)))) ){yes}else{no}]")); Assert.Equal("yes", target.Eval("[( (1 < 2 && 2 == 2 ||(((2 >= 2) && true))) ){yes}else{no}]")); Assert.Equal("yes", target.Eval("[( (1 < 2 && 2 == 2 || (((2 >= 2) && true))) ){yes}else{no}]")); }
public override void Awake() { base.Awake(); enemyController = mDMono.transform.GetComponent <EnemyController>(); // _fsm = enemyController.GetComponent<PlayMakerFSM>(); _network = enemyController.GetComponent <NetworkOwnershipComponent>(); enemyController.TargetingComponent = enemyController.GetComponent <CharacterTargetingComponent>(); _conditionComponent = enemyController.GetComponent <ConditionComponent>(); }
void Awake() { if (_stateHandlers == null) { _stateHandlers = new Dictionary <eCampaignCharacterState, System.Type>(); //ToDo:���÷��䵼��������ù�ϵ���ײ鿴 //Assembly assembly = Assembly.GetAssembly(typeof(CharacterStateHandler)); //foreach (System.Type t in assembly.GetTypes()) //{ // if (!t.IsAbstract && t.IsSubclassOf(typeof(CharacterStateHandler))) // { // CharacterStateHandlerAttribute attr = (CharacterStateHandlerAttribute)t.GetCustomAttributes(typeof(CharacterStateHandlerAttribute), false)[0]; // _stateHandlers.Add(attr.handledState, t); // } //} var type = typeof(AttackTargetStateHandler); _stateHandlers.Add(((CharacterStateHandlerAttribute)type.GetCustomAttributes(typeof(CharacterStateHandlerAttribute), false)[0]).handledState, type); type = typeof(ChaseTargetStateHandler); _stateHandlers.Add(((CharacterStateHandlerAttribute)type.GetCustomAttributes(typeof(CharacterStateHandlerAttribute), false)[0]).handledState, type); type = typeof(IdleStateHandler); _stateHandlers.Add(((CharacterStateHandlerAttribute)type.GetCustomAttributes(typeof(CharacterStateHandlerAttribute), false)[0]).handledState, type); type = typeof(InteractStateHandler); _stateHandlers.Add(((CharacterStateHandlerAttribute)type.GetCustomAttributes(typeof(CharacterStateHandlerAttribute), false)[0]).handledState, type); type = typeof(MoveStateHandler); _stateHandlers.Add(((CharacterStateHandlerAttribute)type.GetCustomAttributes(typeof(CharacterStateHandlerAttribute), false)[0]).handledState, type); } _animator = GetComponentInChildren <Animator>(); _controller = GetComponent <Controller>(); if (_controller is EnemyController) { ((EnemyController)_controller).onDestroy += OnEnemyKilled; } _combatController = GetComponent <CombatController>(); _viewRPC = FindReplicationViewForComponent <CharacterComponent>(); //_effectReceiver = new EffectReceiver(gameObject); _conditionComponent = GetComponent <ConditionComponent>(); _targetingComponent = GetComponent <CharacterTargetingComponent>(); //_animationController = GetComponent<AnimationController>(); _moveController = GetComponent <CampaignMoveController>(); _locomotionComponent = (ILocomotionComponent)GetComponent(typeof(ILocomotionComponent)); if (_locomotionComponent != null) { _locomotionComponent.Initialize(); } //_network = GetComponent<NetworkOwnershipComponent>(); }
public void parseTest11() { var mockEnv = new Mock <IEnvironment>(); var mockUVar = new Mock <IUserVariable>(); ConditionComponent target = new ConditionComponent(mockEnv.Object, mockUVar.Object); Assert.AreEqual(" body1 ", target.parse("[(Test123Data ~= 12){ body1 }else{ body2 }]")); Assert.AreEqual(" body2 ", target.parse("[(Test123Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(Test 123 Data ~= \" 12\"){ body1 }else{ body2 }]")); Assert.AreEqual(" body1 ", target.parse("[(Test 123 Data ~= Data){ body1 }else{ body2 }]")); }
public void invertTest1() { ConditionComponent target = new ConditionComponent((new Mock <IEnvironment>()).Object, (new Mock <IUserVariable>()).Object); Assert.AreEqual("no", target.parse("[( (!2 == 2) && 1 < 2 ){yes}else{no}]")); Assert.AreEqual("no", target.parse("[( (!2 == 2) && (!1 < 2) ){yes}else{no}]")); Assert.AreEqual("no", target.parse("[( (!2 == 2) && (!1 > 2) ){yes}else{no}]")); Assert.AreEqual("yes", target.parse("[(! (!2 == 2) && (!1 > 2) ){yes}else{no}]")); Assert.AreEqual("no", target.parse("[( (!2 == 2) && (!1 < 2) || (!true) ){yes}else{no}]")); Assert.AreEqual("yes", target.parse("[( (!2 == 2) && (!1 < 2) || (true) ){yes}else{no}]")); }
public void compositeTest1() { IUserVariable uv = new UserVariable(); uv.set("test", null, "(data"); ConditionComponent target = new ConditionComponent((new Mock <IEnvironment>()).Object, uv); Assert.AreEqual("no", target.parse("[( #[var test] ~= \"(data && 1 < 2\" ){yes}else{no}]")); Assert.AreEqual("yes", target.parse("[( #[var test] ~= \"(data\" && 1 < 2 ){yes}else{no}]")); }
public void ParseTest10() { var target = new ConditionComponent(new Soba()); Assert.Equal(" body2 ", target.Eval("[(str1 !== str1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(\"str1 \"!==\" str1\"){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(str1 != str1){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(\"str1 \"!=\" str1\"){ body1 }else{ body2 }]")); Assert.Equal(" body2 ", target.Eval("[(02 != 2){ body1 }else{ body2 }]")); Assert.Equal(" body1 ", target.Eval("[(02 !== 2){ body1 }else{ body2 }]")); }
public void InvertTest1() { var target = new ConditionComponent(new Soba()); Assert.Equal("no", target.Eval("[( (!2 == 2) && 1 < 2 ){yes}else{no}]")); Assert.Equal("no", target.Eval("[( (!2 == 2) && (!1 < 2) ){yes}else{no}]")); Assert.Equal("no", target.Eval("[( (!2 == 2) && (!1 > 2) ){yes}else{no}]")); Assert.Equal("yes", target.Eval("[(! (!2 == 2) && (!1 > 2) ){yes}else{no}]")); Assert.Equal("no", target.Eval("[( (!2 == 2) && (!1 < 2) || (!true) ){yes}else{no}]")); Assert.Equal("yes", target.Eval("[( (!2 == 2) && (!1 < 2) || (true) ){yes}else{no}]")); }
private void RemoveReverseLookup(ConditionComponent cc) { if (ReverseNodeLookup.ContainsKey(cc) == true) { ReverseNodeLookup.Remove(cc); //System.Diagnostics.Debug.WriteLine("CV: ConditionComponent " + cc.Id + " unregistered"); } else { //System.Diagnostics.Debug.WriteLine("CV: ConditionComponent " + cc.Id + " not registered"); } }
private void AttachConditionComponentToNode(TreeNode tn, ConditionComponent re) { tn.Tag = re; tn.Text = re.ToString(); tn.Checked = re.Enabled; if (re != null) { SetReverseLookup(re, tn); } re.OnPropertyChange += Re_OnPropertyChange; UpdateNodeIcon(tn); }
private TreeNode GetReverseLookup(ConditionComponent cc) { if (ReverseNodeLookup.ContainsKey(cc) == true) { return(ReverseNodeLookup[cc]); } else { //System.Diagnostics.Debug.WriteLine("CV: ConditionComponent " + cc.Id + " not found"); } return(null); }