示例#1
0
 private static void TestarEntidadeLojaERelacionamento()
 {
     using (CommandSQL comm = conexao.OpenCommandSQL())
     {
         Pessoa pessoa = comm.Get <Pessoa>(1);
     }
 }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
     }
 }
示例#6
0
        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;
                }
            }
        }