private TypeReference GetUseInMethodInvocation(MethodInvocationExpression methodInvocationExpression, VariableReference variable) { V_0 = null; V_1 = methodInvocationExpression.get_Arguments().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current(); if (V_2 as VariableReferenceExpression == null || (object)(V_2 as VariableReferenceExpression).get_Variable() != (object)variable) { continue; } V_0 = V_2; } } finally { if (V_1 != null) { V_1.Dispose(); } } if (V_0 == null) { if ((object)(methodInvocationExpression.get_MethodExpression().get_Target() as VariableReferenceExpression).get_Variable() != (object)variable) { return(null); } return(methodInvocationExpression.get_MethodExpression().get_Member().get_DeclaringType()); } V_3 = methodInvocationExpression.get_Arguments().IndexOf(V_0); V_4 = methodInvocationExpression.get_MethodExpression().get_Method(); return(V_4.get_Parameters().get_Item(V_3).ResolveParameterType(V_4)); }
private bool TryProcessSelectManyMethod(MethodInvocationExpression methodInvoke, bool queryable) { V_0 = methodInvoke.get_MethodExpression().get_MethodDefinition(); if (V_0.get_Parameters().get_Count() != 3) { return(false); } V_1 = this.GetFuncGenericInstance(V_0.get_Parameters().get_Item(1).get_ParameterType() as GenericInstanceType, queryable); if (V_1 == null || V_1.get_GenericArguments().get_Count() != 2) { return(false); } V_2 = this.GetLambdaExpression(methodInvoke.get_Arguments().get_Item(1), queryable); if (V_2 == null || V_2.get_Arguments().get_Count() != 1) { return(false); } this.ProcessCurrentIdentifier(methodInvoke.get_Arguments().get_Item(0), V_2.get_Parameters()[0].Resolve()); stackVariable48 = new VariableReference[1]; stackVariable48[0] = this.currentIdentifier; V_3 = this.ProcessReturnExpression(V_2, stackVariable48); if (V_3 == null) { return(false); } V_4 = this.GetLambdaExpression(methodInvoke.get_Arguments().get_Item(2), queryable); if (V_4 == null || V_4.get_Arguments().get_Count() != 2) { return(false); } V_5 = this.CreateNewIdentifier(V_4.get_Parameters()[1].get_Name(), V_4.get_Parameters()[1].get_ParameterType()); stackVariable82 = new VariableReference[2]; stackVariable82[0] = this.currentIdentifier; stackVariable82[1] = V_5; V_6 = this.ProcessReturnExpression(V_4, stackVariable82); if (V_6 == null) { return(false); } V_7 = this.GetIdentifierReference(V_5, ref V_3); this.clauses.Add(new FromClause(V_7, V_3, null)); this.clauses.Add(new SelectClause(V_6, methodInvoke.get_InvocationInstructions())); this.currentIdentifier = null; return(true); }