public static bool msgFilter(Message msg, bool filterAt, Func <string, bool> filterText) { bool foundAt = false; bool foundText = false; foreach (var ele in msg.data) { if (filterAt && ele is ElementAt) { ElementAt ea = ele as ElementAt; if (ea.data["qq"] == Global.botid.ToString()) { foundAt = true; } } if (ele is ElementText) { ElementText et = ele as ElementText; if (filterText(et.text)) { foundText = true; } } } return((filterAt ? foundAt : true) && foundText); }
async public Task <bool> ProcessAsync(CQApiClient client, MessageEvent msgevt, long srcid) { if (Global.msgFilter(msgevt.message, true, s => s.Contains("图") || s.Contains("工"))) { Message msg = new Message(); foreach (var ele in msgevt.message.data) { if (ele is ElementAt) { ElementAt eat = ele as ElementAt; if (eat.data["qq"] == Global.botid.ToString()) { msg.data.Add(new ElementAt(Global.sbid)); continue; } } msg.data.Add(ele); } await client.SendMessageAsync(msgevt.messageType, srcid, msg); return(true); } if (Global.msgFilter(msgevt.message, true, s => s.Contains("下次区域") || s.Contains("下次鱼") || s.Contains("下次蛤") || s.Contains("下次塔"))) { string text = schedule_.nextMode(Global.msgText(msgevt.message)); if (text == "") { await client.SendMessageAsync(msgevt.messageType, srcid, new Message( new ElementAt(msgevt.sender.user_id), new ElementText(" 最近没有呢"))); } else { await client.SendMessageAsync(msgevt.messageType, srcid, new Message( new ElementAt(Global.sbid), new ElementText(" " + text))); } return(true); } return(false); }
public static IEnumerable <TestCaseData> GetTestCases() { var FIRST_ELEMENT = new FirstElement(); var LAST_ELEMENT = new LastElement(); var ELEMENT_AT = new ElementAt(); var SIZE = new Size(); object[][] tests = new object[][] { new object[] { "first-empty-array", FIRST_ELEMENT, new JArray(), null }, new object[] { "first-null", FIRST_ELEMENT, null, null }, new object[] { "first-array", FIRST_ELEMENT, new JArray(1, 2, 3), new JValue(1) }, new object[] { "last-empty-array", LAST_ELEMENT, new JArray(), null }, new object[] { "last-null", LAST_ELEMENT, null, null }, new object[] { "last-array", LAST_ELEMENT, new JArray(1, 2, 3), new JValue(3) }, new object[] { "at-empty-array", ELEMENT_AT, new JArray(5), null }, new object[] { "at-empty-null", ELEMENT_AT, new JArray(null, 1), null }, new object[] { "at-empty-invalid", ELEMENT_AT, new JObject(), null }, new object[] { "at-array", ELEMENT_AT, new JArray(1, 2, 3, 1), new JValue(3) }, new object[] { "at-array-missing", ELEMENT_AT, new JArray(5, 1, 2, 3), null }, new object[] { "size-list", SIZE, new JArray(5, 1, 2, 3), new JValue(4) } }; foreach (var test in tests) { yield return(new TestCaseData(test.Skip(1).ToArray()) { TestName = $"RunTest({test[0]})" }); } }
public void ShowExample_Click(object sender, EventArgs e) { Form form = null; switch (((Button)sender).Name) { // LINQ Dynamic | Restriction Operators case "uiROWhere": form = new Where(); break; // LINQ Dynamic | Projection Operators case "uiPOSelect": form = new Select(); break; case "uiPOSelectMany": form = new SelectMany(); break; // LINQ Dynamic | Aggregate Operators case "uiAOMin": form = new Min(); break; case "uiAOMax": form = new Max(); break; case "uiAOSum": form = new Sum(); break; case "uiAOCount": form = new Count(); break; case "uiAOAverage": form = new Average(); break; case "uiAOAggregate": form = new Aggregate(); break; // LINQ Dynamic | Query Execution case "uiQEDeferredExecution": form = new DeferredExecution(); break; case "uiQEQueryReuse": form = new QueryReuse(); break; case "uiQEImmediateExecution": form = new ImmediateExecution(); break; // LINQ Dynamic | Join Operators case "uiJOCrossJoin": form = new CrossJoin(); break; case "uiJOGroupJoin": form = new GroupJoin(); break; case "uiJOCrossWithGroupJoin": form = new CrossJoinwithGroupJoin(); break; case "uiJOLeftOuterJoin": form = new LeftOuterJoin(); break; // LINQ Dynamic | Set Operators case "uiSODistinct": form = new Distinct(); break; case "uiSOExcept": form = new Except(); break; case "uiSOIntersect": form = new Intersect(); break; case "uiSOUnion": form = new Union(); break; // LINQ Dynamic | Element Operators case "uiEOElementAt": form = new ElementAt(); break; case "uiEOFirst": form = new First(); break; case "uiEOFirstDefault": form = new FirstOrDefault(); break; // LINQ Dynamic | Custom Sequence Operators case "uiCSOCombine": form = new Combine(); break; // LINQ Dynamic | Quantifiers case "uiQuantifiersAll": form = new All(); break; case "uiQuantifiersAny": form = new Any(); break; // LINQ Dynamic | Grouping Operators case "uiGOGroupBy": form = new GroupBy(); break; // LINQ Dynamic | Miscellaneous Operators case "uiMOConcat": form = new Concat(); break; case "uiMOEqualAll": form = new EqualAll(); break; // LINQ Dynamic | Generation Operators case "uiGORepeat": form = new Repeat(); break; case "uiGORange": form = new Range(); break; // LINQ Dynamic | Ordering Operators case "uiOOOrderBy": form = new OrderBy(); break; case "uiOOThenBy": form = new ThenBy(); break; case "uiOOThenByDescending": form = new ThenByDescending(); break; case "uiOOOrderByDescending": form = new OrderByDescending(); break; case "uiOOReverse": form = new Reverse(); break; // LINQ Dynamic | Conversion Operators case "uiCOOfType": form = new OfType(); break; case "uiCOToArray": form = new ToArray(); break; case "uiCOToDictionary": form = new ToDictionary(); break; case "uiCOToList": form = new ToList(); break; // LINQ Dynamic | Partitioning Operators case "uiPOTake": form = new Take(); break; case "uiPOTakeWhile": form = new TakeWhile(); break; case "uiPOSkip": form = new Skip(); break; case "uiPOSkipWhile": form = new SkipWhile(); break; } form.StartPosition = FormStartPosition.CenterParent; form.ShowDialog(); }