Пример #1
0
        private static ExpressionSyntax RewriteSimplePart(string last, RewriteDesign design, int i)
        {
            var args = design.RewriteChain[i].Arguments;

            switch (last)
            {
            case "Aggregate": return(RewriteAggregate.SimpleRewrite(design, args));

            case "All": return(RewriteAll.SimpleRewrite(design, args));

            case "Any": return(RewriteAny.SimpleRewrite(design, args));

            case "Average": return(RewriteAverage.SimpleRewrite(design, args));

            case "Sum": return(RewriteSum.SimpleRewrite(design, args));

            case "Count": return(RewriteCount.SimpleRewrite(design, args));

            case "LongCount": return(RewriteLongCount.SimpleRewrite(design, args));

            case "First": return(RewriteFirst.SimpleRewrite(design, args));

            case "FirstOrDefault": return(RewriteFirstOrDefault.SimpleRewrite(design, args));

            case "Last": return(RewriteLast.SimpleRewrite(design, args));

            case "LastOrDefault": return(RewriteLastOrDefault.SimpleRewrite(design, args));

            case "Single": return(RewriteSingle.SimpleRewrite(design, args));

            case "SingleOrDefault": return(RewriteSingleOrDefault.SimpleRewrite(design, args));

            case "ElementAt": return(RewriteElementAt.SimpleRewrite(design, args));

            case "ElementAtOrDefault": return(RewriteElementAtOrDefault.SimpleRewrite(design, args));

            case "Range": RewriteRange.Rewrite(design, args); return(null);

            case "Repeat": RewriteRepeat.Rewrite(design, args); return(null);

            case "Empty": RewriteEmpty.Rewrite(design, args, design.RewriteChain[i].Invocation); return(null);

            case "Skip": RewriteSkip.Rewrite(design, args); return(null);

            case "Take": RewriteTake.Rewrite(design, args); return(null);

            case "Reverse": RewriteReverse.Rewrite(design, args); return(null);

            case "Select": RewriteSelect.Rewrite(design, args); return(null);

            case "Cast": RewriteCast.Rewrite(design, args, design.RewriteChain[i].Invocation); return(null);

            case "ToArray": return(RewriteToArray.SimpleRewrite(design, args));

            case "ToList": return(RewriteToList.SimpleRewrite(design, args));

            case "ToSimpleList": return(RewriteToSimpleList.SimpleRewrite(design, args));

            case "Unchecked": design.Unchecked = true; return(null);

            default: return(null);
            }
        }