private void format_and_write()
        {
            set_keys(); set_files();
            byte[] ImageArray   = new byte[5120];
            byte[] cardUID      = new byte[7];
            byte   cardresponse = 0x00;
            short  cmp_ratio    = 1;

            if (rbt2.Checked)
            {
                cmp_ratio = 2;
            }
            if (rbt3.Checked)
            {
                cmp_ratio = 3;
            }
            if (rbt4.Checked)
            {
                cmp_ratio = 4;
            }
            Program.ImageCopressSave(imageBox.Image, cmp_ratio, ref ImageArray);
            byte[] VersionArray = new byte[32];
            if (RCDESFire.FormatRCDESFire(ref cardUID, keys, rcfiles, rbtNewCard.Checked, ref cardresponse))
            {
                //Write VersionFile

                byte[] ImageSize = new byte[4];
                Array.Copy(Program.StringToByteArray("1.01"), 0, VersionArray, 0, 4);
                ImageSize = Program.GetSize(ImageArray.Length);
                Array.Copy(cardUID, 0, VersionArray, 4, 7);
                Array.Copy(ImageSize, 0, VersionArray, 11, 3);
                if (RCDESFire.RCWriteFile(0x01, keys[00], VersionArray, ref cardresponse))
                {
                    //Write Basic File
                    if (RCDESFire.RCWriteFile(0x02, keys[00], Program.StringToByteArray(SetBasicInfo()), ref cardresponse))
                    {
                        //Write Private File
                        if (RCDESFire.RCWriteFile(0x03, keys[00], Program.StringToByteArray(SetSecureInfo()), ref cardresponse))
                        {
                            //Write Image
                            if (RCDESFire.RCWriteFile(0x04, keys[00], ImageArray, ref cardresponse))
                            {
                                //Write Test File
                                if (RCDESFire.RCWriteFile(0x05, keys[00], Program.StringToByteArray("raj IT Solution Ltd 2017"), ref cardresponse))
                                {
                                    try
                                    {
                                        oda oda = new oda();
                                        oda.InsertSamrtCardUIS(BitConverter.ToString(cardUID), rollTextBox.Text, DateTime.Now.ToString());
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(ex.Message);
                                    };

                                    MessageBox.Show("Card Formatted Successfully." + Environment.NewLine + "Card UID: " + BitConverter.ToString(cardUID));
                                    return;
                                }
                                else
                                {
                                    MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                                }
                            }
                            else
                            {
                                MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                            }
                        }
                        else
                        {
                            MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                        }
                    }
                    else
                    {
                        MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    }
                }
                else
                {
                    MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                }
            }
            else
            {
                MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
            }
        }
        private void readCard()
        {
            try
            {
                set_keys();
                byte   cardresponse = 0x00;
                byte[] ReadBuffer   = new byte[1024];
                //Read Version
                byte[] Version   = new byte[32];
                byte[] ImageFile = new byte[5120];
                if (RCDESFire.RCReadFile(0x01, ref Version, ref cardresponse))
                {
                    //Read Image
                    byte[] byte_Version_Number = new byte[4];
                    Array.Copy(Version, 0, byte_Version_Number, 0, 4);
                    //MessageBox.Show("Version#" + Program.ByteArrayToString(byte_Version_Number));
                    byte[] bimagesize = new byte[4]; Array.Copy(Version, 11, bimagesize, 0, 3);
                    int    imagesize  = Program.GetValue(bimagesize);
                    if (RCDESFire.RCReadFile(0x04, keys[1], ref ImageFile, ref cardresponse))
                    {
                        /////////////
                        byte[] ImageFileAr = new byte[imagesize];
                        Array.Copy(ImageFile, ImageFileAr, imagesize);
                        System.IO.MemoryStream strm = new System.IO.MemoryStream(ImageFileAr);
                        imageBox.Image   = Bitmap.FromStream(strm);
                        imageBox.Visible = true;
                        /////////////
                    }
                    else
                    {
                        imageBox.Visible = false;
                    }
                }
                else
                {
                    imagebox2.Visible = false;
                    //MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }
                if (RCDESFire.RCReadFile(0x02, ref ReadBuffer, ref cardresponse))
                {
                    String bytearrstring = Program.ByteArrayToString(ReadBuffer);

                    string[] splt = bytearrstring.Split('\n');
                    rollTextBox.Text         = splt[0].ToString();
                    fullNameTextBox.Text     = splt[1].ToString();
                    classTextBox.Text        = splt[2].ToString();
                    genderTextBox.Text       = splt[3].ToString();
                    religionTextBox.Text     = splt[4].ToString();
                    academicYearTextBox.Text = splt[5].ToString();
                    departmentTextBox.Text   = splt[6].ToString();

                    shiftTextBox.Text = (splt[7] != null ? splt[7].ToString() : "");
                    //regStatusTextBox.Text = splt[8].ToString();
                    //fathersNameTextBox.Text = splt[9].ToString();
                    //mothernameTextBox.Text = splt[10].ToString();
                    //contNumberTextBox.Text = splt[11].ToString();
                    //statusTxtbox.Text = splt[12].ToString();



                    //MessageBox.Show("Open Data:\r\n" + Program.ByteArrayToString(ReadBuffer));
                }
                else
                {
                    //MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }
                if (RCDESFire.RCReadFile(0x03, keys[2], ref ReadBuffer, ref cardresponse))
                {
                    String bytearrstring2 = Program.ByteArrayToString(ReadBuffer);

                    string[] splt = bytearrstring2.Split('\n');

                    dobTextBox.Text           = splt[0].ToString();
                    gurdianNumberTextBox.Text = splt[1].ToString();
                    classRollTextBox.Text     = splt[2].ToString();
                    fathersNameTextBox.Text   = splt[3].ToString();



                    //MessageBox.Show("Secure Data:\r\n" + Program.ByteArrayToString(ReadBuffer));
                }
                else
                {
                    //MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }
                if (RCDESFire.RCReadFile(0x05, ref ReadBuffer, ref cardresponse))
                {
                    // MessageBox.Show("Test Data:\r\n" + Program.ByteArrayToString(ReadBuffer));
                }
                else
                {
                    // MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }
            }
            catch { }
        }
        private void readCard()
        {
            try
            {
                set_keys();
                byte   cardresponse = 0x00;
                byte[] ReadBuffer   = new byte[1024];
                //Read Version
                byte[] Version   = new byte[32];
                byte[] ImageFile = new byte[5120];
                if (RCDESFire.RCReadFile(0x01, ref Version, ref cardresponse))
                {
                    //Read Image
                    byte[] byte_Version_Number = new byte[4];
                    Array.Copy(Version, 0, byte_Version_Number, 0, 4);
                    //MessageBox.Show("Version#" + Program.ByteArrayToString(byte_Version_Number));
                    byte[] bimagesize = new byte[4]; Array.Copy(Version, 11, bimagesize, 0, 3);
                    int    imagesize  = Program.GetValue(bimagesize);
                    if (RCDESFire.RCReadFile(0x04, keys[1], ref ImageFile, ref cardresponse))
                    {
                        /////////////
                        byte[] ImageFileAr = new byte[imagesize];
                        Array.Copy(ImageFile, ImageFileAr, imagesize);
                        System.IO.MemoryStream strm = new System.IO.MemoryStream(ImageFileAr);
                        imageBox.Image   = Bitmap.FromStream(strm);
                        imageBox.Visible = true;
                        /////////////
                    }
                    else
                    {
                        imageBox.Visible = false;
                    }
                }
                else
                {
                    //imageBox.Visible = false;
                    //MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }



                if (RCDESFire.RCReadFile(0x02, ref ReadBuffer, ref cardresponse)) //Basic
                {
                    String   bytearrstring = Program.ByteArrayToString(ReadBuffer);
                    string[] splt          = bytearrstring.Split('\n');
                    fullNameTextBox.Text     = splt[0].ToString();
                    designationTextBox.Text  = splt[1].ToString();
                    departmentTextBox.Text   = splt[2].ToString();
                    textBoxSpouse.Text       = splt[3].ToString();
                    txtBoxPhone_Offfice.Text = splt[4].ToString();
                    teacherIdTextBox.Text    = splt[5].ToString();
                    textBloodGroup.Text      = splt[6].ToString();

                    //MessageBox.Show("Open Data:\r\n" + Program.ByteArrayToString(ReadBuffer));
                }
                else
                {
                    // MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }



                if (RCDESFire.RCReadFile(0x03, keys[2], ref ReadBuffer, ref cardresponse)) //SECURE
                {
                    String   bytearrstring = Program.ByteArrayToString(ReadBuffer);
                    string[] splt          = bytearrstring.Split('\n');

                    contNumberTextBox.Text = splt[0].ToString();
                    //textBloodGroup.Text = splt[1].ToString();
                    textBoxSpouseNo.Text = splt[1].ToString();

                    //MessageBox.Show("Secure Data:\r\n"+Program.ByteArrayToString(ReadBuffer));
                }
                else
                {
                    // MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }


                if (RCDESFire.RCReadFile(0x05, ref ReadBuffer, ref cardresponse))
                {
                    //MessageBox.Show("Test Data:\r\n" + Program.ByteArrayToString(ReadBuffer));
                }
                else
                {
                    // MessageBox.Show(RCDESFire.GetDESFireErrorMessage(cardresponse));
                    return;
                }
            }
            catch { }
        }