Exemple #1
0
        private static List <Tuple <String, String, object> > RunMethods(ViableMapAndData aMap, List <dynamic> objects)
        {
            List <Tuple <String, String, object> > results = new List <Tuple <String, String, object> >();
            var methodStore = aMap.StoredData.Where(x => x.MapType.Equals(DataMapType.MethodParameterMap) && !x.DataStoreName.Equals(ParameterExtruder.Constructor));

            if (methodStore.Any())
            {
                foreach (DataStore aStore in methodStore)
                {
                    foreach (DataRow aRow in aStore.ActualData.Rows)
                    {
                        foreach (dynamic anObject in objects)
                        {
                            MethodInfo method = anObject.GetType().GetMethod(aStore.DataStoreName);

                            List <object[]> paramList = ParameterExtruder.BuildParameterArrayList(aMap, method.Name);
                            if (paramList.Count > 0)
                            {
                                foreach (Object[] parameters in paramList)
                                {
                                    results.Add(InvokeMethod(method, anObject, parameters, aStore.DataStoreName));
                                }
                            }
                            else
                            {
                                results.Add(InvokeMethod(method, anObject, null, aStore.DataStoreName));
                            }
                        }
                    }
                }
            }

            return(results);
        }
Exemple #2
0
        /// <summary>
        /// creates objects with parameters in their constructors
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="anAssembly"></param>
        private static List <dynamic> CreateAndInitializeFields(ViableMapAndData aMap, Assembly anAssembly)
        {
            List <dynamic>  result        = new List <dynamic>();
            List <Object[]> parameterList = ParameterExtruder.BuildParameterArrayList(aMap, ".ctor");

            if (parameterList.Count > 0)
            {
                foreach (Object[] parameters in parameterList)
                {
                    result.AddRange(CreateAndInitializeFields(aMap, anAssembly, parameters));
                }
            }
            else
            {
                result.AddRange(CreateAndInitializeFields(aMap, anAssembly, null));
            }
            return(result);
        }
Exemple #3
0
        private static List <Tuple <String, String, object> > CreateObjectInitializeFieldsAndRunMethods(ViableMapAndData aMap, Assembly anAssembly)
        {
            List <Tuple <String, String, object> > results = new List <Tuple <String, String, object> >();
            List <dynamic>  injectedObjects   = new List <dynamic>();
            List <Object[]> constructorParams = ParameterExtruder.BuildParameterArrayList(aMap, ParameterExtruder.Constructor);

            foreach (Object[] ctorParameters in constructorParams)
            {
                injectedObjects.Add(CreateAndInitializeFields(aMap, anAssembly, ctorParameters));
            }

            if (injectedObjects.Any())
            {
                results = RunMethods(aMap, injectedObjects);
            }



            return(results);
        }