diff --git a/Extensions/SqliteConnectionExtensions.cs b/Extensions/SqliteConnectionExtensions.cs index fb8f3c2..6ddeb0d 100644 --- a/Extensions/SqliteConnectionExtensions.cs +++ b/Extensions/SqliteConnectionExtensions.cs @@ -1,21 +1,27 @@ using System; +using System.Data.Sqlite; using System.Reflection; +using Serilog; -public static t Parse(this object obj) { - var r = typeof(t).GetConstructor(new System.Type[] { }).Invoke(new object[] { }); - PropertyInfo inf = null; - try { - foreach (PropertyInfo i in r.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) { - inf = i; - try { - PropertyInfo inf2 = obj.GetType().GetProperty(inf.Name); - if (inf2 != null) { - inf.SetValue(r, inf2.GetValue(obj)); - } - } catch (Exception ex) { Log.Error(ex, $"Object.Parse.GetValue[{inf.Name}] failed"); } +namespace Extensions {} + public static t Insert(this SqliteConnection cn, Dictionary args) { + var r = typeof(t).GetConstructor(new System.Type[] { }).Invoke(new object[] { }); + PropertyInfo inf = null; + try { + foreach (PropertyInfo i in r.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)) { + inf = i; + try { + if (args.ContainsKey(inf.name)) { + inf.SetValue(r, args[inf.name]); + } + } catch (Exception ex) { Log.Error(ex, $"Object.Insert.GetValue[{inf.Name}] failed"); } + } + } catch (Exception ex) { + Log.Error(ex, $"Unable to build object for SQL Insert statement [PropertyInfo.Name={inf.Name}]"); } - } catch (Exception ex) { - Log.Error(ex, $"Unable to PopulateControls with Object [Type={obj.GetType().ToString()}, PropertyInfo.Name={inf.Name}]"); + + // TODO : Add code to Insert into Table + + return (t)r; } - return (t)r; } \ No newline at end of file