private static void TestarEntidadeLojaERelacionamento() { using (CommandSQL comm = conexao.OpenCommandSQL()) { Pessoa pessoa = comm.Get <Pessoa>(1); } }
private DataRow[] DtFilesContains(SQLiteCommand command) { IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(IPAddres), Port); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(ipPoint); //добавление в модель данных CommandSQL commandSend = new CommandSQL(); commandSend.CommandText = command.CommandText; foreach (SQLiteParameter par in command.Parameters) { commandSend.Parameters += "$" + par.ParameterName + "$" + par.Value; } //сериализация для отправки команды JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(commandSend); //отправка byte[] data = Encoding.Unicode.GetBytes(json); socket.Send(data); // получаем ответ data = new byte[256]; // буфер для ответа StringBuilder builder = new StringBuilder(); int bytes = 0; // количество полученных байт do { bytes = socket.Receive(data, data.Length, 0); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (socket.Available > 0); string test = builder.ToString(); string[] mystring = test.Split('$'); DataTable table = new DataTable(); table.Columns.Add("Applications"); table.Columns.Add("AppVersions"); table.Columns.Add("FilePath"); table.Columns.Add("DateCreateDB"); table.Columns.Add("Contains"); table.Columns[4].DataType = typeof(byte[]); for (int i = 1; i < mystring.Length; i++) { JavaScriptSerializer serializer1 = new JavaScriptSerializer(); serializer1.MaxJsonLength = int.MaxValue; FilesContains meta = serializer1.Deserialize <FilesContains>(mystring[i]); table.Rows.Add(new object[] { meta.Applications, meta.AppVersions, meta.FilePath, meta.DateCreateDB, StringToByteArray(meta.Contains) }); } socket.Shutdown(SocketShutdown.Both); socket.Close(); DataRow[] dataRows = table.Rows.Cast <DataRow>().ToArray(); return(dataRows); }
private DataRow[] DtFilesVersions(SQLiteCommand command) { IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(IPAddres), Port); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(ipPoint); CommandSQL commandSend = new CommandSQL(); commandSend.CommandText = command.CommandText; foreach (SQLiteParameter par in command.Parameters) { commandSend.Parameters += "$" + par.ParameterName + "$" + par.Value; } JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(commandSend); byte[] data = Encoding.Unicode.GetBytes(json); socket.Send(data); data = new byte[256]; StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = socket.Receive(data, data.Length, 0); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (socket.Available > 0); string test = builder.ToString(); string[] mystring = test.Split('$'); DataTable table = new DataTable(); table.Columns.Add("AppVersion"); table.Columns.Add("FileHash"); table.Columns.Add("CreationDate"); table.Columns.Add("FileSize"); table.Columns.Add("FilePath"); table.Columns.Add("DateCreateDB"); table.Columns.Add("Applications"); for (int i = 1; i < mystring.Length; i++) { JavaScriptSerializer serializer1 = new JavaScriptSerializer(); serializer1.MaxJsonLength = int.MaxValue; FilesVersions meta = serializer1.Deserialize <FilesVersions>(mystring[i]); table.Rows.Add(new object[] { meta.AppVersions, meta.FileHash, meta.CreationDate, meta.FileSize, meta.FilePath, meta.DateCreateDB, meta.Applications }); } socket.Shutdown(SocketShutdown.Both); socket.Close(); DataRow[] dataRows = table.Rows.Cast <DataRow>().ToArray(); return(dataRows); }
public bool Insert(SQLiteCommand command) { IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(IPAddres), Port); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(ipPoint); CommandSQL commandSend = new CommandSQL(); commandSend.CommandText = command.CommandText; foreach (SQLiteParameter par in command.Parameters) { if (par.Value.GetType() == typeof(byte[])) { commandSend.Parameters += "$" + par.ParameterName + "$" + ByteArrayToString((byte[])par.Value); } else { commandSend.Parameters += "$" + par.ParameterName + "$" + par.Value; } } JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(commandSend); byte[] data = Encoding.Unicode.GetBytes(json); socket.Send(data); data = new byte[256]; StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = socket.Receive(data, data.Length, 0); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (socket.Available > 0); string test = builder.ToString(); if (test == "True") { socket.Shutdown(SocketShutdown.Both); socket.Close(); return(true); } else { socket.Shutdown(SocketShutdown.Both); socket.Close(); return(false); } }
public void SQLRequest(object sender, RoutedEventArgs e) { try { CommandSQL = CommandSQL.Replace("= '", "= N'"); CommandSQL = CommandSQL.Replace("='", "=N'"); var data = context.Execute(CommandSQL); RefreshSelectedTable(data); SelectedTableName = "SQL Request"; UpdateStoredProcedures(); Notification("Success"); } catch (Exception ex) { Notification(ex.Message); } }
public void Active() { IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(IPAddres), Port); Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); listenSocket.Bind(ipPoint); listenSocket.Listen(10); Console.WriteLine("Сервер запущен. Ожидание подключений..."); while (true) { Socket handler = listenSocket.Accept(); StringBuilder builder = new StringBuilder(); int bytes = 0; byte[] data = new byte[256]; do { bytes = handler.Receive(data); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (handler.Available > 0); string sql = builder.ToString(); JavaScriptSerializer serializer1 = new JavaScriptSerializer(); serializer1.MaxJsonLength = int.MaxValue; CommandSQL commandSQL = serializer1.Deserialize <CommandSQL>(sql); string[] parsingSQL = commandSQL.CommandText.Split(' '); string command = ""; string table = ""; if (parsingSQL[0] == "SELECT") { command = parsingSQL[0]; table = parsingSQL[3]; } else { if (parsingSQL[0] == "INSERT") { command = parsingSQL[0]; table = parsingSQL[2]; } else { command = parsingSQL[0]; table = parsingSQL[1]; } } switch (command) { case "SELECT": switch (table) { #region Applications case "Applications": string resultApplications = ""; Applications applications = new Applications(); mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandApplications = new SQLiteCommand(); commandApplications.CommandText = commandSQL.CommandText; string[] paramApplications = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramApplications.Length; i += 2) { commandApplications.Parameters.AddWithValue(paramApplications[i], paramApplications[i + 1]); } DataRow[] datarowsApp = mydb.Select(commandApplications); foreach (DataRow row in datarowsApp) { applications.ApplicationName = row[0].ToString(); JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(applications); resultApplications += "$" + json; } data = Encoding.Unicode.GetBytes(resultApplications); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region ApplicationInfo case "ApplicationInfo": string resultApplicationInfo = ""; ApplicationInfo applicationInfo = new ApplicationInfo(); mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandApplicationInfo = new SQLiteCommand(); commandApplicationInfo.CommandText = commandSQL.CommandText; string[] paramApplicationInfo = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramApplicationInfo.Length; i += 2) { commandApplicationInfo.Parameters.AddWithValue(paramApplicationInfo[i], paramApplicationInfo[i + 1]); } DataRow[] datarowsApplicationInfo = mydb.Select(commandApplicationInfo); foreach (DataRow row in datarowsApplicationInfo) { applicationInfo.Application = row[0].ToString(); applicationInfo.AppVersion = row[1].ToString(); applicationInfo.AppDiscription = row[2].ToString(); applicationInfo.Flag = row[3].ToString(); JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(applicationInfo); resultApplicationInfo += "$" + json; } data = Encoding.Unicode.GetBytes(resultApplicationInfo); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region FilesContains case "FilesContains": string resultFilesContains = ""; FilesContains filesContains = new FilesContains(); mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandFilesContains = new SQLiteCommand(); commandFilesContains.CommandText = commandSQL.CommandText; string[] paramFilesContains = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramFilesContains.Length; i += 2) { commandFilesContains.Parameters.AddWithValue(paramFilesContains[i], paramFilesContains[i + 1]); } DataRow[] datarowsFilesContains = mydb.Select(commandFilesContains); foreach (DataRow row in datarowsFilesContains) { filesContains.Applications = row[0].ToString(); filesContains.AppVersions = row[1].ToString(); filesContains.FilePath = row[2].ToString(); filesContains.DateCreateDB = row[3].ToString(); filesContains.Contains = (byte[])row[4]; JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(filesContains); resultFilesContains += "$" + json; } data = Encoding.Unicode.GetBytes(resultFilesContains); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region FilesVersions case "FilesVersions": string resultFilesVersions = ""; FilesVersions filesVersions = new FilesVersions(); mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandFilesVersions = new SQLiteCommand(); commandFilesVersions.CommandText = commandSQL.CommandText; if (commandSQL.Parameters != null) { string[] paramFilesVersions = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramFilesVersions.Length; i += 2) { commandFilesVersions.Parameters.AddWithValue(paramFilesVersions[i], paramFilesVersions[i + 1]); } } DataRow[] datarowsFilesVersions = mydb.Select(commandFilesVersions); foreach (DataRow row in datarowsFilesVersions) { filesVersions.AppVersions = row[0].ToString(); filesVersions.FileHash = row[1].ToString(); filesVersions.CreationDate = row[2].ToString(); filesVersions.FileSize = Convert.ToInt32(row[3].ToString()); filesVersions.FilePath = row[4].ToString(); filesVersions.DateCreateDB = row[5].ToString(); filesVersions.Applications = row[6].ToString(); JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = int.MaxValue; string json = serializer.Serialize(filesVersions); resultFilesVersions += "$" + json; } data = Encoding.Unicode.GetBytes(resultFilesVersions); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion } break; case "INSERT": switch (table) { #region Applications case "Applications": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandApplications = new SQLiteCommand(); commandApplications.CommandText = commandSQL.CommandText; string[] paramApplications = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramApplications.Length; i += 2) { commandApplications.Parameters.AddWithValue(paramApplications[i], paramApplications[i + 1]); } mydb.Insert(commandApplications); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region ApplicationInfo case "ApplicationInfo": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandApplicationInfo = new SQLiteCommand(); commandApplicationInfo.CommandText = commandSQL.CommandText; string[] paramApplicationInfo = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramApplicationInfo.Length; i += 2) { commandApplicationInfo.Parameters.AddWithValue(paramApplicationInfo[i], paramApplicationInfo[i + 1]); } mydb.Insert(commandApplicationInfo); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region FilesContains case "FilesContains": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandFilesContains = new SQLiteCommand(); commandFilesContains.CommandText = commandSQL.CommandText; string[] paramFilesContains = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramFilesContains.Length; i += 2) { commandFilesContains.Parameters.AddWithValue(paramFilesContains[i], paramFilesContains[i + 1]); } mydb.Insert(commandFilesContains); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region FilesVersions case "FilesVersions": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandFilesVersions = new SQLiteCommand(); commandFilesVersions.CommandText = commandSQL.CommandText; string[] paramFilesVersions = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramFilesVersions.Length; i += 2) { commandFilesVersions.Parameters.AddWithValue(paramFilesVersions[i], paramFilesVersions[i + 1]); } mydb.Insert(commandFilesVersions); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion } break; case "Update": switch (table) { #region Applications case "Applications": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandApplications = new SQLiteCommand(); commandApplications.CommandText = commandSQL.CommandText; string[] paramApplications = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramApplications.Length; i += 2) { commandApplications.Parameters.AddWithValue(paramApplications[i], paramApplications[i + 1]); } mydb.Insert(commandApplications); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region ApplicationInfo case "ApplicationInfo": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandApplicationInfo = new SQLiteCommand(); commandApplicationInfo.CommandText = commandSQL.CommandText; string[] paramApplicationInfo = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramApplicationInfo.Length; i += 2) { commandApplicationInfo.Parameters.AddWithValue(paramApplicationInfo[i], paramApplicationInfo[i + 1]); } mydb.Insert(commandApplicationInfo); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region FilesContains case "FilesContains": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandFilesContains = new SQLiteCommand(); commandFilesContains.CommandText = commandSQL.CommandText; string[] paramFilesContains = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramFilesContains.Length; i += 2) { commandFilesContains.Parameters.AddWithValue(paramFilesContains[i], paramFilesContains[i + 1]); } mydb.Insert(commandFilesContains); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion #region FilesVersions case "FilesVersions": mydb = new SQLite(AppDomain.CurrentDomain.BaseDirectory); SQLiteCommand commandFilesVersions = new SQLiteCommand(); commandFilesVersions.CommandText = commandSQL.CommandText; string[] paramFilesVersions = commandSQL.Parameters.Split('$'); for (int i = 1; i < paramFilesVersions.Length; i += 2) { commandFilesVersions.Parameters.AddWithValue(paramFilesVersions[i], paramFilesVersions[i + 1]); } mydb.Insert(commandFilesVersions); data = Encoding.Unicode.GetBytes("True"); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); break; #endregion } break; } } }