Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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]})"
                });
            }
        }
Exemplo n.º 4
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();
        }