static void Main(string[] args)
        {
            var exampleToRun = Examples.linqjoinleft;

            switch (exampleToRun)
            {
            case Examples.linqAnonymousTypes:
                AnonymousTypes.ShowAnonymousTypes();
                break;

            case Examples.linqjoinleft:
                leftjoin.ShowLeftJoin();
                break;

            case Examples.showAdoNet:
                AdoNet.AdonetShow();
                break;
            }
        }
            private void ProcessReferenceExpression(IReferenceExpression reference)
            {
                var declaredElement = reference.Reference.Resolve().DeclaredElement;

                var parameter = declaredElement as IParameter;

                if (parameter != null)
                {
                    var parametersOwner = parameter.ContainingParametersOwner;
                    if (parametersOwner == null)
                    {
                        return;
                    }

                    foreach (var closure in myClosures)
                    {
                        var queryPlatform = closure as IQueryParameterPlatform;
                        if (queryPlatform != null)
                        {
                            var platform = parametersOwner as IQueryParameterPlatform;
                            if (platform != null && queryPlatform == platform)
                            {
                                return;
                            }

                            // outer query parameter
                            AddCapture(closure, parameter);
                        }
                        else
                        {
                            // anonymous parameter access
                            if (ReferenceEquals(parametersOwner, closure))
                            {
                                return;
                            }

                            if (myClosures.Count == 1)
                            {
                                if (parametersOwner.Equals(myFunction))
                                {
                                    return;                     // simple parameter access
                                }
                                var accessor = myFunction as IAccessor;
                                if (accessor != null && accessor.OwnerMember.Equals(parametersOwner))
                                {
                                    return; // indexer parameter access
                                }
                            }

                            AddCapture(closure, parameter);
                        }
                    }

                    return;
                }

                var variable = declaredElement as ILocalVariable;

                if (variable != null)
                {
                    if (variable.IsStatic)
                    {
                        return;
                    }
                    if (variable.IsConstant)
                    {
                        return;
                    }

                    var declarations = variable.GetDeclarations();
                    if (declarations.Count == 1)
                    {
                        var declaration = declarations[0];
                        foreach (var closure in myClosures)
                        {
                            if (!(closure is IQueryParameterPlatform) &&
                                closure.Contains(declaration))
                            {
                                return;
                            }

                            AddCapture(closure, variable);
                        }
                    }

                    return;
                }

                var typeMember = declaredElement as ITypeMember;

                if (typeMember != null) // .this closure
                {
                    if (typeMember is ITypeElement)
                    {
                        return;
                    }
                    if (typeMember.IsStatic)
                    {
                        return;
                    }

                    var field = typeMember as IField;
                    if (field != null && field.IsConstant)
                    {
                        return;
                    }

                    AddThisCapture();
                    return;
                }

                var anonymousProperty = declaredElement as IQueryAnonymousTypeProperty;

                if (anonymousProperty != null)
                {
                    foreach (var anonymousTypeProperty in anonymousProperty.ContainingType.Properties)
                    {
                        var property    = (IQueryAnonymousTypeProperty)anonymousTypeProperty;
                        var declaration = property.Declaration;

                        if (QueryFirstFromNavigator.GetByDeclaration(declaration) == null &&
                            QueryContinuationNavigator.GetByDeclaration(declaration) == null)
                        {
                            AnonymousTypes.Add(declaration);
                        }
                    }
                }
            }
Example #3
0
        public void FromClauseExample1TestMethod()
        {
            AnonymousTypes _fc = new AnonymousTypes();

            Assert.AreEqual <string>("108-Hello", _fc.AnonymousTypesMyTestMethod1());
        }
Example #4
0
        public void FromClauseExample5TestMethod()
        {
            AnonymousTypes _fc = new AnonymousTypes();

            Assert.AreEqual <string>("300,12-Eello", _fc.AnonymousTypesMyTestMethod5());
        }
Example #5
0
        public void FromClauseExample4TestMethod()
        {
            AnonymousTypes _fc = new AnonymousTypes();

            Assert.AreEqual <string>("apple-4, grape-1", _fc.AnonymousTypesMyTestMethod4());
        }
Example #6
0
        static void Main(string[] args)
        {
            var exampleToRun = ExamplesEnumeration.JoinWithExtensionMethodsSyntax;

            switch (exampleToRun)
            {
            case ExamplesEnumeration.BasicSyntax:
                BasicSyntax.ShowBasicSyntaxLinq();
                break;

            case ExamplesEnumeration.GenderCondition:
                BasicSyntax.ShowConditionWithGender();
                break;

            case ExamplesEnumeration.ExtensionMethodSyntax:
                ExtensionMethodSyntax.ShowExtensionMethodSyntax();
                break;

            case ExamplesEnumeration.DefferedExecution:
                ExtensionMethodSyntax.DefferedExecution();
                break;

            case ExamplesEnumeration.WhereBasicSyntax:
                WhereClause.ShowWhereWithBasicSyntax();
                break;

            case ExamplesEnumeration.WhereExtensionSyntax:
                WhereClause.ShowWhereWithExtensionSyntax();
                break;

            case ExamplesEnumeration.OrderByBasicSyntax:
                OrderByClause.ShowOrderBy();
                break;

            case ExamplesEnumeration.OrderByExtensionSyntax:
                OrderByClause.OrderByExtensionSyntax();
                break;

            case ExamplesEnumeration.GroupByBasicSyntax:
                GroupByClause.ShowGroupBy();
                break;

            case ExamplesEnumeration.GroupByExtensionSyntax:
                GroupByClause.GroupByExtensionSyntax();
                break;

            case ExamplesEnumeration.GroupByInto:
                GroupByClause.GroupByInto();
                break;

            case ExamplesEnumeration.AnonymousTypes:
                AnonymousTypes.ShowAnonymousTypes();
                break;

            case ExamplesEnumeration.AnonymousTypesTryChangeProperty:
                AnonymousTypes.TryChangeProperty();
                break;

            case ExamplesEnumeration.AnonymousTypesPropertyNamesInheritance:
                AnonymousTypes.PropertiesNamesInheritance();
                break;

            case ExamplesEnumeration.ExplicitSelectClause:
                ExplicitSelectClause.ShowExplicitSelect();
                break;

            case ExamplesEnumeration.ExplicitSelectAnonymousType:
                ExplicitSelectClause.SelectAnonymousType();
                break;

            case ExamplesEnumeration.DynamicTypes:
                DynamicTypes.ShowDynamicTypes();
                break;

            case ExamplesEnumeration.JoinWithQuerySyntax:
                JoinClause.ShowJoinWithQuerySyntax();
                break;

            case ExamplesEnumeration.JoinWithExtensionMethodsSyntax:
                JoinClause.ShowJoinWithExtensionMethodsSyntax();
                break;
            }

            Console.Read();
        }