Example #1
0
        private static object[] GetValues(SimpleJobFactory factory, ParameterInfo[] pars)
        {
            var vals = new  object[pars.Length];
            int i    = 0;

            foreach (var item in pars)
            {
                var paramType = item.ParameterType;
                //TODO: what if paramtype is array/ienumerable??
                if (paramType != typeof(string) && paramType.GetTypeInfo().IsClass)
                {
                    var itemClass  = factory.ConstructedObject(paramType);
                    var t          = itemClass.GetType();
                    var propsClass = factory.GetOwnProperties(t, t.Name);
                    foreach (var prClass in propsClass)
                    {
                        Console.WriteLine($"{prClass.Name} ({prClass.ParameterType.Name})");
                    }
                    vals[i++] = itemClass;
                    //TODO: add propertied for this object
                    //e.g DBTableData
                }
                else
                {
                    //todo: add optional and default value
                    Console.WriteLine($"please give value for ({item.ParameterType.Name}){item.Name} ");
                    vals[i++] = Convert.ChangeType(Console.ReadLine(), item.ParameterType);
                }
            }
            return(vals);
        }
Example #2
0
        private static T GetFullObject <T>(SimpleJobFactory factory)
        {
            var t = typeof(T);
            int i = 1;

            foreach (var name in factory.NamesOfObjects(t))
            {
                Console.WriteLine($"{i++}){name}");
            }
            Console.Write($"Please enter {t.Name} id");
            var nr = int.Parse(Console.ReadLine());

            var nameSelected = factory.NamesOfObjects(t)[nr - 1];

            var pars = factory.GetOwnProperties(t, nameSelected);
            var vals = GetValues(factory, pars);
            var obj  = factory.GetObject(t, nameSelected, vals);

            return((T)obj);
        }