public static void UpdateTable(ReadModelData readModelData, string table) { table = table.Split("Table")[0]; var l = readModelData.GetType().ToString(); if (l.Split("Table").Length > 1 || 1 != 0) { string commandText = "INSERT INTO " + "dbo." + table.ToLower() + Environment.NewLine + "Values("; string dboParams = "'" + readModelData.Id + "', "; string clearRow = ""; clearRow = "DELETE FROM " + table.ToLower() + Environment.NewLine + "WHERE Id='" + readModelData.Id + "'"; Type typedReadmodel = readModelData.GetType(); foreach (PropertyInfo propertyInfo in typedReadmodel.GetProperties()) { if (propertyInfo.Name != "Id") { var value = GetValues(readModelData, propertyInfo.Name); if (value != null) { if (value.ToString().Split("'").Length > 1) { value = value.ToString().Split("'")[0] + "''" + value.ToString().Split("'")[1]; } } dboParams = dboParams + "'" + value + "', "; } } char[] comma = { ',' }; if (dboParams.EndsWith(",")) { dboParams = dboParams.Remove(dboParams.Length - 1); } dboParams = dboParams.Substring(0, dboParams.Length - 2); commandText = commandText + dboParams + ")"; myConnection.Open(); try { SqlCommand sqlCommand = myConnection.CreateCommand(); sqlCommand.CommandText = clearRow; var test = sqlCommand.ExecuteNonQuery(); sqlCommand.CommandText = commandText; try { var builder = sqlCommand.ExecuteReader(); } catch (Exception e) { Console.Write(e); } } catch (Exception e) { Console.Write(e); } myConnection.Close(); } }
private static object GetValues(ReadModelData readModelData, string name) { var returnable = readModelData.GetType().GetProperties() .Single(pi => pi.Name == name) .GetValue(readModelData, null); return(returnable); }