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); }
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); }