//TO ENCODE THE SELECTED TABLE

        public void Encode(Hashtable[] HT, ArrayList PatitionCount, ArrayList TableColumn)
        {
            BufferdTranfer objBuffer = new BufferdTranfer();

            watermark_partition = new Hashtable[HT.Length];

            for (int x = 0; x < HT.Length; x++)
            {
                watermark_partition[x] = new Hashtable();
            }



            for (int k = 0; k < HT.Length; k++)
            {
                pvalue = HT[k].Count;
                l      = watermark.Length;
                i      = k % l;


                if (watermark[i] == 1)
                {
                    for (int j = 0; j < HT[k].Count; j++)
                    {
                        index    = j % Delta_Max.Length;
                        recieve  = HT[k][j].ToString();
                        Spliting = recieve.Split('~');
                        Add      = Delta_Max[index] + int.Parse(Spliting[0].ToString());
                        watermark_partition[k][j] = Add.ToString() + "~" + HT[k][j].ToString() + "~" + k + "~" + j;
                    }
                    boolHash.Add(k, "max");
                }
                else
                {
                    for (int j = 0; j < HT[k].Count; j++)
                    {
                        index    = j % Delta_Min.Length;
                        recieve  = HT[k][j].ToString();
                        Spliting = recieve.Split('~');
                        Add      = Delta_Min[index] + int.Parse(Spliting[0].ToString());
                        watermark_partition[k][j] = Add.ToString() + "~" + HT[k][j].ToString() + "~" + k + "~" + j;
                    }
                    boolHash.Add(k, "min");
                }
            }
            objBuffer.boolHash      = boolHash;
            objBuffer.TotalRecord   = Partition.rowscountStatic;
            objBuffer.arryTableName = TableColumn;
            objBuffer.TableName     = Partition.TableN;
            objBuffer.SourceName    = MainForm.SourceNa;
            MessageBox.Show("Single Bit Encoding Completed", "Server", MessageBoxButtons.OK);
            waterserial.createtable(watermark_partition, objBuffer);
        }
        //TO ENCRYPT THE WATERMARK SERIALIZED FILE WITH KEY VALIDATION CONTROL
        public void encryption(string sInputFilename, object Buffer)
        {
            Key            objkey    = new Key();
            BufferdTranfer objBuffer = new BufferdTranfer();

            objBuffer       = (BufferdTranfer)Buffer;
            sOutputFilename = dirname + "\\Encrypt\\Data\\EncryptWithkey.txt";
            Keyname         = dirname + "\\Encrypt\\Data\\key.txt";
            FileStream fsInput           = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);
            FileStream fsEncrypted       = new FileStream(sOutputFilename, FileMode.Create, FileAccess.Write);
            DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

            DES.Key = ASCIIEncoding.ASCII.GetBytes(key);
            DES.IV  = ASCIIEncoding.ASCII.GetBytes(key);
            ICryptoTransform desencrypt   = DES.CreateEncryptor();
            CryptoStream     cryptostream = new CryptoStream(fsEncrypted, desencrypt, CryptoStreamMode.Write);

            byte[] bytearrayinput = new byte[fsInput.Length];
            fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
            cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
            cryptostream.Close();
            //AGAIN SERIALIZING THE WATERMARK SERIALIZED FILE
            SerializedOutputFile = dirname + "\\Encrypt\\Data\\Serialized.txt";
            Stream filestream1 = File.OpenRead(sOutputFilename);

            byte[] filebuffer1 = new byte[filestream1.Length];
            filestream1.Read(filebuffer1, 0, (int)filestream1.Length);
            filestream1.Close();
            MessageBox.Show("WaterMarking Completed", "Server", MessageBoxButtons.OK);

            SerializedOutputFile = dirname + "\\Encrypt\\Data\\Serialized.txt";
            Stream          s = File.Open(SerializedOutputFile, FileMode.Create, FileAccess.ReadWrite);
            BinaryFormatter b = new BinaryFormatter();

            objBuffer.buffer = filebuffer1;
            objBuffer.key    = key;
            b.Serialize(s, objBuffer);
            s.Close();

            MessageBox.Show("Serialization Completed", "Server", MessageBoxButtons.OK);

            //Stream filestream2 = File.OpenRead(SerializedOutputFile);
            //byte[] filebuffer2 = new byte[filestream2.Length];
            //filestream2.Read(filebuffer2, 0, (int)filestream2.Length);
            //filestream2.Close();
            //TcpClient clientsocket = new TcpClient(MainForm.Destination, 8080);
            //NetworkStream networkstream = clientsocket.GetStream();
            //networkstream.Write(filebuffer2, 0, filebuffer2.GetLength(0));
            //networkstream.Close();
            //MessageBox.Show("Data Transfered to " + MainForm.Destination, "Server", MessageBoxButtons.OK);
        }