private static void Menu(Connection con) { Console.WriteLine("Specjalne operacje:"); foreach (KeyValuePair <string, string> elem in menuInstruction) { Console.WriteLine(elem.Key + " => '" + elem.Value + "'"); } while (true) { Console.Write("> "); string command = Console.ReadLine(); if (menuOption.ContainsKey(command)) { command = menuOption[command](con); } try { ResponseAgregator response = con.Query(command); Console.Write(ResponseAgregatorToString(response)); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
public static void Init(Connection con) { ResponseAgregator data = con.Query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME "); string[] columnNames = data.Values.Select(x => x[0].ToString()).ToArray(); foreach (string columnName in columnNames) { List <object> newDatabaseTableData = new List <object>(); Type acttype = Type.GetType("BDProject.Core.Data." + columnName + ", BDProject.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", true); MethodInfo conv = acttype.GetMethod("Convert"); acttype.GetMethods(BindingFlags.Static); data = con.Query("SELECT * FROM " + columnName); foreach (var elem in data.Values) { newDatabaseTableData.Add(conv.Invoke(null, new object[] { elem })); } localDatabase.Add(columnName, newDatabaseTableData); } }
public static string ResponseAgregatorToString(ResponseAgregator response) { string strResponse = ""; int[] columnWidth = new int[response.ColumnNames.Count()]; for (int i = 0; i < columnWidth.Length; i++) { columnWidth[i] = response.ColumnNames.ElementAt(i).Length; } foreach (object[] values in response.Values) { for (int i = 0; i < values.Length; i++) { if (values[i].ToString().Length > columnWidth[i]) { columnWidth[i] = values[i].ToString().Length; } } } string strColumns = new string('-', columnWidth.Sum() + columnWidth.Length * 3 + 1); strColumns += '\n'; for (int i = 0; i < columnWidth.Length; i++) { string columnName = response.ColumnNames.ElementAt(i); strColumns += "| " + columnName.ToUpper() + new string(' ', columnWidth[i] - columnName.Length + 1); } strColumns += "|\n"; strColumns += new string('-', columnWidth.Sum() + columnWidth.Length * 3 + 1) + "\n"; strResponse += strColumns; foreach (object[] values in response.Values) { for (int i = 0; i < values.Length; i++) { string valueStr = values[i].ToString(); strResponse += "| " + valueStr + new string(' ', columnWidth[i] - valueStr.Length + 1); } strResponse += "|\n"; } strResponse += new string('-', columnWidth.Sum() + columnWidth.Length * 3 + 1) + "\n"; return(strResponse); }