private string ValidateImport(string strDestFile)
        {
            string decryptedData = null;
            //Check whether we can open the file
            OpenFileDialog objFile = new OpenFileDialog();

            DialogResult resultdia = new DialogResult();

            if (strDestFile == null)
            {
                resultdia = objFile.ShowDialog();             // Show the dialog.
            }
            else
            {
                objFile.FileName = strDestFile;
            }
            if (strDestFile != null || resultdia == DialogResult.OK)             // Test result.
            {
                string file = objFile.FileName;
                //TO DO
                FileCryptography.DoDecrypt(file, KnowledgeMatrix.Properties.Settings.Default.ProductKey);
                decryptedData = FileCryptography.decryptedData;
                if (string.IsNullOrEmpty(decryptedData))
                {
                    MessageBox.Show("File is invalid");
                }
            }
            return(decryptedData);
        }
Esempio n. 2
0
        /// <summary>
        /// Loads an object from an XML file in Document format.
        /// </summary>
        /// <example>
        /// <code>
        /// serializableObject = ObjectXMLSerializer&lt;SerializableObject&gt;.Load(@"C:\XMLObjects.xml");
        /// </code>
        /// </example>
        /// <param name="path">Path of the file to load the object from.</param>
        /// <returns>Object loaded from an XML file in Document format.</returns>
        public static T Load(string path)
        {
            T serializableObject = null;

            try
            {
                if (!KnowledgeMatrix.Framework.Utility.IsAdmin())
                {
                    FileCryptography.entropy = null;
                    string path1 = path.Replace(".txt", "1.txt");
                    FileCryptography.FileName = path;
                    FileCryptography.entropy  = UnicodeEncoding.ASCII.GetBytes(KnowledgeMatrix.Properties.Settings.Default.ProductKey);
                    FileCryptography.DoDecrypt();
                    string decryptedData = FileCryptography.decryptedData;

                    File.WriteAllText(path1, decryptedData);
                    serializableObject = LoadFromDocumentFormat(null, path1, null);
                    File.Delete(path1);
                }
                else
                {
                    serializableObject = LoadFromDocumentFormat(null, path, null);
                }
            }
            catch (Exception ex)
            {
                LogEntry.WriteLog(ex, "File Reading Exception : " + path);
            }
            return(serializableObject);
        }
        public bool ValidateLicense()
        {
            FileCryptography.DoDecrypt(filename, null);
            string decryptedData = FileCryptography.decryptedData;


            if (!string.IsNullOrEmpty(decryptedData))
            {
                string[] prodCatalog = decryptedData.Split('%');

                string[] strLic = prodCatalog[0].ToString().Split('|');; // decryptedData.Split('|');
                // if ((name == strLic[0]) && (email == strLic[1]) && (licensekey == strLic[2]) && (EntropyGenerator.GetSystemInfo("") == strLic[3]))
                if ((name == strLic[0]) && (email == strLic[1]) && (licensekey == strLic[2]))
                {
                    KnowledgeMatrix.Properties.Settings.Default.IP               = EntropyGenerator.GetIPForMachine();
                    KnowledgeMatrix.Properties.Settings.Default.Authenicated     = "true";
                    KnowledgeMatrix.Properties.Settings.Default.Setting          = EntropyGenerator.GetSystemInfo("");
                    KnowledgeMatrix.Properties.Settings.Default.ProductKey       = strLic[4];
                    KnowledgeMatrix.Properties.Settings.Default.DateOfActivation = DateTime.Now;
                    KnowledgeMatrix.Properties.Settings.Default.Save();

                    FileCryptography.encryptedData = prodCatalog[1];
                    FileCryptography.entropy       = EntropyGenerator.GetKeyBytesForMachine();
                    FileCryptography.FileName      = KnowledgeMatrix.Framework.Utility.XML_QUESTION_NAME;
                    FileCryptography.DoEncrypt();

                    //         FileCryptography.DoEncrypt(prodCatalog[1], KnowledgeMatrix.Framework.Utility.XML_QUESTION_NAME, null);

                    return(true);
                }
                else
                {
                    KnowledgeMatrix.Properties.Settings.Default.IP               = "0.0.0.0";
                    KnowledgeMatrix.Properties.Settings.Default.Authenicated     = "false";
                    KnowledgeMatrix.Properties.Settings.Default.Setting          = "";
                    KnowledgeMatrix.Properties.Settings.Default.ProductKey       = "";
                    KnowledgeMatrix.Properties.Settings.Default.DateOfActivation = DateTime.MaxValue;
                    KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate = DateTime.MaxValue;
                    KnowledgeMatrix.Properties.Settings.Default.Save();

                    return(false);
                }
            }
            else
            {
                KnowledgeMatrix.Properties.Settings.Default.IP               = "0.0.0.0";
                KnowledgeMatrix.Properties.Settings.Default.Authenicated     = "false";
                KnowledgeMatrix.Properties.Settings.Default.Setting          = "";
                KnowledgeMatrix.Properties.Settings.Default.ProductKey       = "";
                KnowledgeMatrix.Properties.Settings.Default.DateOfActivation = DateTime.MaxValue;
                KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate = DateTime.MaxValue;
                KnowledgeMatrix.Properties.Settings.Default.Save();

                return(false);
            }
        }
Esempio n. 4
0
        private void ImpLicFile_Click(object sender, EventArgs e)
        {
            DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.

            if (result == DialogResult.OK)                      // Test result.z
            {
                string file = openFileDialog1.FileName;
                FileCryptography.DoDecrypt(file, KnowledgeMatrix.Properties.Settings.Default.RegistrationKey);
                string   decryptedData = FileCryptography.decryptedData;
                string[] prodCatalog   = decryptedData.Split('|');
                txtName.Text         = prodCatalog[0];
                txtEmail.Text        = prodCatalog[1];
                txtOrganisation.Text = prodCatalog[2];
                txtPhone.Text        = prodCatalog[3];
                txtIP.Text           = prodCatalog[5];
            }
        }
        public void GenerateLicense()
        {
            StringBuilder strLic = new StringBuilder();

            strLic.Append(name);
            strLic.Append("|");
            strLic.Append(email);
            strLic.Append("|");
            strLic.Append(LicenseKey);
            strLic.Append("|");
            systeminfo = EntropyGenerator.GetSystemInfo("");
            strLic.Append(systeminfo);
            strLic.Append("|");
            productId = Guid.NewGuid().ToString().Replace("-", "").Remove(25);
            strLic.Append(productId);



            if (string.IsNullOrWhiteSpace(IP))
            {
                IP = EntropyGenerator.GetIPForMachine();
            }

            //Include the Product Catalog along with the
            //License info
            string prodCatalog = System.IO.File.ReadAllText(Application.StartupPath + Utility.FolderType() + @"ProductsManagement\QuestionMaster.txt");

            strLic.Append("%");
            strLic.Append(prodCatalog);

            filename = FileCryptography.DoEncrypt(strLic.ToString(), filename, IP);


            //For Admin Generate Database
            AdminDatabaseMgmt obj = new AdminDatabaseMgmt();

            obj.name        = name;
            obj.email       = email;
            obj.Licensekey  = LicenseKey;
            obj.SystemInfo  = systeminfo;
            obj.ProductId   = productId;
            obj.IP          = IP;
            obj.phoneNumber = phoneNumber;
            obj.Add();
        }
Esempio n. 6
0
 /// <summary>
 /// Saves an object to an XML file in Document format.
 /// </summary>
 /// <example>
 /// <code>
 /// SerializableObject serializableObject = new SerializableObject();
 ///
 /// ObjectXMLSerializer&lt;SerializableObject&gt;.Save(serializableObject, @"C:\XMLObjects.xml");
 /// </code>
 /// </example>
 /// <param name="serializableObject">Serializable object to be saved to file.</param>
 /// <param name="path">Path of the file to save the object to.</param>
 public static void Save(T serializableObject, string path)
 {
     try
     {
         SaveToDocumentFormat(serializableObject, null, path, null);
         if (!KnowledgeMatrix.Framework.Utility.IsAdmin())
         {
             FileCryptography.entropy       = UnicodeEncoding.ASCII.GetBytes(KnowledgeMatrix.Properties.Settings.Default.ProductKey);
             FileCryptography.encryptedData = File.ReadAllText(path);
             FileCryptography.FileName      = path;
             FileCryptography.DoEncrypt();
         }
     }
     catch (Exception ex)
     {
         LogEntry.WriteLog(ex, "File Save Exception : " + path);
     }
 }
        public void RegisterUser()
        {
            StringBuilder strLic = new StringBuilder();

            strLic.Append(name);
            strLic.Append("|");
            strLic.Append(email);
            strLic.Append("|");
            strLic.Append(organisationName);
            strLic.Append("|");
            strLic.Append(phoneNumber);
            strLic.Append("|");
            systeminfo = EntropyGenerator.GetSystemInfo("");
            strLic.Append(systeminfo);
            strLic.Append("|");
            strLic.Append(EntropyGenerator.GetIPForMachine());
            filename = FileCryptography.DoEncrypt(strLic.ToString(), filename, KnowledgeMatrix.Properties.Settings.Default.RegistrationKey);
            //FileCryptography.DoDecrypt(filename, Properties.Settings.Default.RegistrationKey);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            // MessageBox.Show(getParent[RowIndex].Name);
            string FileName = Application.StartupPath + @"\" + getParent[RowIndex].Name + ".txt";


            /*List<QuestionDetail> navQuestions;
             * navQuestions = new List<QuestionDetail>();
             * resultQuestions = ObjectXMLSerializer<QuestionDetailData>.Load(XML_QUESTION_NAME);
             * getFirstChild =
             *   (from QuestionMast in result.objQuestionMas
             *    where QuestionMast.ParentQuestionNo == Convert.ToInt16(getParent[RowIndex].QuesNo)
             *    select QuestionMast).ToList();
             * for (int childCnt = 0; childCnt < getFirstChild.Count; childCnt++)
             * {
             *     strindex = (getFirstChild[childCnt].QuesNo);
             *     obj = (from QuestionDetail in resultQuestions.objQuestionDetail
             *            where QuestionDetail.QuesNo == strindex
             *            select QuestionDetail).ToList();
             *     //MessageBox.Show(node.Tag.ToString());
             *     foreach (QuestionDetail objj in obj)
             *         navQuestions.Add(objj);
             *
             *     //TreeNode childtreeNode = new TreeNode(getFirstChild[childCnt].Name);
             *     //childtreeNode.Tag = getFirstChild[childCnt].QuesNo.ToString();
             *     //childtreeNode.ImageIndex = selectedCustomerImageIndex;
             *     //childtreeNode.SelectedImageIndex = 3;
             *
             *     //treeNode.Nodes.Add(childtreeNode);
             *
             *     //Add the Subchild
             *     getSecondChild =
             * (from QuestionMast in result.objQuestionMas
             * where QuestionMast.ParentQuestionNo == getFirstChild[childCnt].QuesNo
             * select QuestionMast).ToList();
             *     for (int childSecondCnt = 0; childSecondCnt < getSecondChild.Count; childSecondCnt++)
             *     {
             *         strindex = (getSecondChild[childSecondCnt].QuesNo);
             *         obj = (from QuestionDetail in resultQuestions.objQuestionDetail
             *                where QuestionDetail.QuesNo == strindex
             *                select QuestionDetail).ToList();
             *         //MessageBox.Show(node.Tag.ToString());
             *         foreach (QuestionDetail objj in obj)
             *             navQuestions.Add(objj);
             *     }
             * }
             */
            // QuestionDetailData resultQuestions=ObjectXMLSerializer<QuestionDetailData>.Load( FileName);
            QuestionDetailData obj1 = ObjectXMLSerializer <QuestionDetailData> .Load(FileName);

            //  obj1.objQuestionDetail = resultQuestions;


            ObjectXMLSerializer <QuestionDetailData> .Save(obj1, "NewDoc.txt");

            string text = System.IO.File.ReadAllText(@"NewDoc.txt");

            System.IO.File.Delete(@"NewDoc.txt");
            FileCryptography.entropy = null;

            folderBrowserDialog1.Description = @"Select the folder to Export file";
            DialogResult re = folderBrowserDialog1.ShowDialog();

            if (DialogResult.OK == re)
            {
                if (File.Exists(folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + @"QB.txt"))
                {
                    System.IO.File.Delete(folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + @"_QB.txt");
                }


                FileCryptography.DoEncrypt(text, folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + @"_QB.txt", textBox1.Text);
                //FileCryptography.entropy = null;
                //FileCryptography.DoDecrypt("NewDocEnc.xml", null);
                //string decryptedData = FileCryptography.decryptedData;
                AuditPurchase(getParent[RowIndex].Name, "Question Bank");
                MessageBox.Show("Data Exported to " + folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + @"_QB.txt");
            }
        }
        void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            RowIndex = e.RowIndex;
            #region admin related
            if (e.ColumnIndex > 0 && Utility.IsAdmin())
            {
                if (string.IsNullOrWhiteSpace(textBox1.Text))
                {
                    MessageBox.Show("Please choose Client before to proceed");
                    return;
                }
                folderBrowserDialog1.Description = @"Select the folder to Export file";
                DialogResult re = new DialogResult();
                if (Utility.isStandard())
                {
                    re = folderBrowserDialog1.ShowDialog();
                }

                //eTutor
                //   if (e.ColumnIndex == 1)
                //{
                //    string FileName = Application.StartupPath + @"\" + getParent[RowIndex].Name + ".txt";

                //}

                //Admin with Question Bank and Question Paper
                if (e.ColumnIndex == 2 || e.ColumnIndex == 3 || e.ColumnIndex == 1)
                {
                    string FileName;
                    string text;
                    if (e.ColumnIndex == 1)
                    {
                        FileName = Application.StartupPath + Utility.FolderType() + @"eTutor\" + getParent[RowIndex].Name + ".txt";
                        text     = System.IO.File.ReadAllText(FileName);
                    }
                    else
                    {
                        FileName = Application.StartupPath + Utility.FolderType() + @"QuestionBank\" + getParent[RowIndex].Name + ".txt";

                        QuestionDetailData obj1 = ObjectXMLSerializer <QuestionDetailData> .Load(FileName);

                        // ObjectXMLSerializer<QuestionDetailData>.Save(obj1, "NewDoc111.txt");
                        if (e.ColumnIndex == 2)
                        {
                            obj1.objQuestionDetail = (from QuestionDetailData in obj1.objQuestionDetail
                                                      where (QuestionDetailData.ModuleName == Utility.MOD_ALL || QuestionDetailData.ModuleName == Utility.MOD_QUEST_BANK)
                                                      select QuestionDetailData).ToList();
                            obj1.QuestionType = "QUESTION BANK";
                        }
                        else
                        {
                            obj1.QuestionType = "QUESTION PAPER";
                        }


                        ObjectXMLSerializer <QuestionDetailData> .Save(obj1, "NewDoc.txt");

                        text = System.IO.File.ReadAllText(@"NewDoc.txt");
                        System.IO.File.Delete(@"NewDoc.txt");
                    }
                    FileCryptography.entropy = null;


                    string extn = "";;
                    if (e.ColumnIndex == 2)
                    {
                        extn = @"_QB.txt";
                    }
                    else if (e.ColumnIndex == 3)
                    {
                        extn = @"_QP.txt";
                    }
                    else if (e.ColumnIndex == 1)
                    {
                        extn = @"_eTutor.txt";
                    }

                    if (!Utility.isStandard() || DialogResult.OK == re)
                    {
                        string strDestFile = null;
                        if (Utility.isStandard())
                        {
                            strDestFile = folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + "_" + textBox1.Text + extn;
                        }
                        else
                        {
                            if (e.ColumnIndex == 2)
                            {
                                strDestFile = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\QuestionBank\" + getParent[RowIndex].Name + "_" + textBox1.Text + extn;
                            }
                            else if (e.ColumnIndex == 3)
                            {
                                strDestFile = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\QuestionPaper\" + getParent[RowIndex].Name + "_" + textBox1.Text + extn;
                            }
                            else if (e.ColumnIndex == 1)
                            {
                                strDestFile = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\eTutor\" + getParent[RowIndex].Name + "_" + textBox1.Text + extn;
                            }
                        }

                        if (File.Exists(folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + extn))
                        {
                            System.IO.File.Delete(folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + extn);
                        }


                        //FileCryptography.DoEncrypt(text, strDestFile, textBox1.Text);
                        FileCryptography.DoEncrypt(text, strDestFile, textBox1.Tag.ToString());
                        if (e.ColumnIndex == 2)
                        {
                            AuditPurchase(getParent[RowIndex].Name, "Km- Knowledge Base");
                        }
                        else if (e.ColumnIndex == 3)
                        {
                            AuditPurchase(getParent[RowIndex].Name, "Km-Knowledge Assessment");
                        }
                        else if (e.ColumnIndex == 1)
                        {
                            AuditPurchase(getParent[RowIndex].Name, "Km-Knowledge eTutor");
                        }
                        MessageBox.Show("Data Exported to " + strDestFile);
                    }
                }
                else if (e.ColumnIndex == 4)
                {
                    //Mock Test
                    QuestionManagementColl         objQuestionManagementColl = null;
                    QuestionDetailData             resultQuestions;
                    QuestionManagementWithQuesColl objQuestionManagementWithQuesColl;
                    objQuestionManagementWithQuesColl = new QuestionManagementWithQuesColl();
                    if (File.Exists(Application.StartupPath + Utility.FolderType() + @"MockTest\MockTestList.txt"))
                    {
                        objQuestionManagementColl = ObjectXMLSerializer <QuestionManagementColl> .Load(Application.StartupPath + Utility.FolderType() + @"MockTest\MockTestList.txt");
                    }

                    if (objQuestionManagementColl != null)
                    {
                        for (int i = 0; i < objQuestionManagementColl.objQuestionManagement.Count; i++)
                        {
                            if (objQuestionManagementColl.objQuestionManagement[i].QuestionTopic == getParent[RowIndex].Name)
                            {
                                QuestionManagementWithQues objQuestionManagement = new QuestionManagementWithQues();
                                objQuestionManagement.ExamName = objQuestionManagementColl.objQuestionManagement[i].ExamName;
                                objQuestionManagement.ExamPasPercentageScore = objQuestionManagementColl.objQuestionManagement[i].ExamPasPercentageScore;
                                objQuestionManagement.ExamMode           = objQuestionManagementColl.objQuestionManagement[i].ExamMode;
                                objQuestionManagement.QuestionComplexity = objQuestionManagementColl.objQuestionManagement[i].QuestionComplexity;
                                objQuestionManagement.QuestionType       = objQuestionManagementColl.objQuestionManagement[i].QuestionType;
                                objQuestionManagement.TotalQuestions     = objQuestionManagementColl.objQuestionManagement[i].TotalQuestions;
                                objQuestionManagement.FileName           = objQuestionManagementColl.objQuestionManagement[i].FileName;
                                objQuestionManagement.QuestionTopic      = objQuestionManagementColl.objQuestionManagement[i].QuestionTopic;
                                objQuestionManagement.Subject            = objQuestionManagementColl.objQuestionManagement[i].Subject;
                                objQuestionManagement.TestStatus         = objQuestionManagementColl.objQuestionManagement[i].TestStatus;
                                objQuestionManagement.TestResult         = objQuestionManagementColl.objQuestionManagement[i].TestResult;
                                objQuestionManagement.TestTime           = objQuestionManagementColl.objQuestionManagement[i].TestTime;
                                if (File.Exists(objQuestionManagementColl.objQuestionManagement[i].FileName))
                                {
                                    resultQuestions = ObjectXMLSerializer <QuestionDetailData> .Load(objQuestionManagementColl.objQuestionManagement[i].FileName);

                                    objQuestionManagement.objQuestionDetail = new List <QuestionDetail>();
                                    objQuestionManagement.objQuestionDetail.AddRange(resultQuestions.objQuestionDetail);
                                }
                                objQuestionManagementWithQuesColl.objQuestionManagement.Add(objQuestionManagement);
                            }
                            //objQuestionManagementWithQuesColl.objQuestionManagement[].objQuestionDetail.Add(
                        }
                        if (!Utility.isStandard() || DialogResult.OK == re)
                        {
                            ObjectXMLSerializer <QuestionManagementWithQuesColl> .Save(objQuestionManagementWithQuesColl, "NewDoc.txt");

                            string text = System.IO.File.ReadAllText(@"NewDoc.txt");
                            System.IO.File.Delete(@"NewDoc.txt");
                            FileCryptography.entropy = null;

                            string strMockFileName = null;
                            if (Utility.isStandard())
                            {
                                strMockFileName = folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + "_" + textBox1.Text + "_Mock.txt";
                            }
                            else
                            {
                                strMockFileName = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\" + @"MockTest\" + getParent[RowIndex].Name + "_" + textBox1.Text + "_Mock.txt";
                            }
                            if (File.Exists(strMockFileName))
                            {
                                System.IO.File.Delete(strMockFileName);
                            }

                            // FileCryptography.DoEncrypt(text, strMockFileName, textBox1.Text);
                            FileCryptography.DoEncrypt(text, strMockFileName, textBox1.Tag.ToString());
                            AuditPurchase(getParent[RowIndex].Name, "Km-Knowledge Evaluator");
                            MessageBox.Show("Data Exported to " + strMockFileName);

                            // ObjectXMLSerializer<QuestionManagementWithQuesColl>.Save(objQuestionManagementWithQuesColl, folderBrowserDialog1.SelectedPath + @"\" + getParent[RowIndex].Name + "_Mock.txt");
                        }
                    }

                    // FileName = Application.StartupPath + @"\" + FileName + ".txt";
                }
            }

            #endregion
            else if (e.ColumnIndex > 0)
            {
                // MessageBox.Show(dataGridView1.Columns[e.ColumnIndex].Name);
                if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionBank" || dataGridView1.Columns[e.ColumnIndex].Name == "QuestionPaper" || dataGridView1.Columns[e.ColumnIndex].Name == "eTutor")
                {
                    string strDestFile = null;



                    DataGridViewDisableButtonCell buttonCell;
                    if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionBank")
                    {
                        buttonCell =
                            (DataGridViewDisableButtonCell)dataGridView1.
                            Rows[e.RowIndex].Cells["QuestionBank"];
                        if (!Utility.isStandard())
                        {
                            strDestFile = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\QuestionBank\" + getParent[RowIndex].Name + "_" + EntropyGenerator.GetIPForMachine() + @"_QB.txt";
                        }
                    }
                    else if (dataGridView1.Columns[e.ColumnIndex].Name == "eTutor")
                    {
                        buttonCell =
                            (DataGridViewDisableButtonCell)dataGridView1.
                            Rows[e.RowIndex].Cells["eTutor"];
                        if (!Utility.isStandard())
                        {
                            strDestFile = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\eTutor\" + getParent[RowIndex].Name + "_" + EntropyGenerator.GetIPForMachine() + @"_eTutor.txt";
                        }
                    }
                    else
                    {
                        buttonCell =
                            (DataGridViewDisableButtonCell)dataGridView1.
                            Rows[e.RowIndex].Cells["QuestionPaper"];
                        if (!Utility.isStandard())
                        {
                            strDestFile = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\QuestionPaper\" + getParent[RowIndex].Name + "_" + EntropyGenerator.GetIPForMachine() + @"_QP.txt";
                        }
                    }


                    //if (dataGridView1.Rows[e.RowIndex].Cells["QuestionBank"].Value.ToString() == "Purchase")
                    if (buttonCell.Value.ToString() == "Purchase")
                    {
                        //DataGridViewDisableButtonCell buttonCell =
                        //    (DataGridViewDisableButtonCell)dataGridView1.
                        //    Rows[e.RowIndex].Cells["QuestionBank"];

                        //Check whether we can open the file
                        //OpenFileDialog objFile = new OpenFileDialog();

                        //DialogResult resultdia = objFile.ShowDialog(); // Show the dialog.
                        //if (resultdia == DialogResult.OK) // Test result.
                        //{
                        //    string file = objFile.FileName;
                        //    FileCryptography.DoDecrypt(file, null);
                        //    string decryptedData = FileCryptography.decryptedData;
                        //    if (string.IsNullOrEmpty(decryptedData))
                        //    {
                        //        MessageBox.Show("File is invalid");
                        //    }
                        //    else
                        string decryptedData = ValidateImport(strDestFile);
                        if (decryptedData != null)
                        {
                            QuestionDetailData result1   = new QuestionDetailData();
                            eTutorCollData     objetutor = new eTutorCollData();
                            try
                            {
                                string FileName = null;
                                if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionBank")
                                {
                                    FileName = Application.StartupPath + Utility.FolderType() + @"QuestionBank\" + getParent[e.RowIndex].Name + ".txt";
                                }
                                else if (dataGridView1.Columns[e.ColumnIndex].Name == "eTutor")
                                {
                                    FileName = Application.StartupPath + Utility.FolderType() + @"eTutor\" + getParent[e.RowIndex].Name + ".txt";
                                }
                                else
                                {
                                    FileName = Application.StartupPath + Utility.FolderType() + @"QuestionPaper\" + getParent[e.RowIndex].Name + ".txt";
                                }

                                if (File.Exists(FileName))
                                {
                                    File.Delete(FileName);
                                }

                                FileCryptography.encryptedData = decryptedData;
                                FileCryptography.FileName      = FileName;
                                FileCryptography.entropy       = UnicodeEncoding.ASCII.GetBytes(KnowledgeMatrix.Properties.Settings.Default.ProductKey);
                                FileCryptography.DoEncrypt();

                                if (dataGridView1.Columns[e.ColumnIndex].Name == "eTutor")
                                {
                                    objetutor = ObjectXMLSerializer <eTutorCollData> .Load(FileName);

                                    if (objetutor == null && objetutor.eTutorlst.Count() == 0)
                                    {
                                        MessageBox.Show("No data available to import. Please contact Sales team");
                                        return;
                                    }
                                }
                                else if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionBank" || dataGridView1.Columns[e.ColumnIndex].Name == "QuestionPaper")
                                {
                                    result1 = ObjectXMLSerializer <QuestionDetailData> .Load(FileName);

                                    bool isValid = true;

                                    if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionBank" && result1.QuestionType != "QUESTION BANK")
                                    {
                                        isValid = false;
                                    }
                                    else if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionPaper" && result1.QuestionType != "QUESTION PAPER")
                                    {
                                        isValid = false;
                                    }

                                    else if (result1 == null && result1.objQuestionDetail.Count() == 0)
                                    {
                                        isValid = false;
                                    }
                                    if (!isValid)
                                    {
                                        File.Delete(FileName);
                                        MessageBox.Show("No data available to import. Please contact Sales team");
                                        return;
                                    }
                                }

                                {
                                    //ObjectXMLSerializer<QuestionDetailData>.Save(result1, FileName);

                                    MessageBox.Show("Data imported Successfully");
                                    buttonCell.Value = "Purchased";


                                    buttonCell.Enabled = false;

                                    //Update the Product Catalog
                                    int idx = result.objQuestionMas.FindIndex(
                                        delegate(QuestionMast bk)
                                    {
                                        return(bk.QuesNo == getParent[e.RowIndex].QuesNo);
                                    }
                                        );
                                    if (dataGridView1.Columns[e.ColumnIndex].Name == "QuestionBank")
                                    {
                                        result.objQuestionMas[idx].QuesBank = "Purchased";
                                    }
                                    else if (dataGridView1.Columns[e.ColumnIndex].Name == "eTutor")
                                    {
                                        result.objQuestionMas[idx].eTutor = "Purchased";
                                    }
                                    else
                                    {
                                        result.objQuestionMas[idx].QuesBankGen = "Purchased";
                                    }
                                    result.objQuestionMas[idx].QuesBankDate = System.DateTime.Now.ToString();

                                    ObjectXMLSerializer <QuestionsData> .Save(result, KnowledgeMatrix.Framework.Utility.XML_QUESTION_NAME);

                                    //  FileCryptography.encryptedData = File.ReadAllText(XML_FILE_NAME1);
                                    // FileCryptography.FileName = KnowledgeMatrix.Framework.Utility.XML_QUESTION_NAME;
                                    //FileCryptography.DoEncrypt();
                                    //File.Delete(XML_FILE_NAME1);
                                    //Update the Product Catalog
                                }
                            }
                            catch (Exception ex)
                            {
                                LogEntry.WriteLog(ex, "Thread Exception");
                                MessageBox.Show("File incorrect. Please contact Sales team");
                            }
                        }

                        //}
                    }
                    else if (dataGridView1.Rows[e.RowIndex].Cells["QuestionBank"].Value.ToString() == "Purchased" || dataGridView1.Rows[e.RowIndex].Cells["QuestionPaper"].Value.ToString() == "Purchased")
                    {
                        LicenseDetail obj = new LicenseDetail();
                        int           idx = result.objQuestionMas.FindIndex(
                            delegate(QuestionMast bk)
                        {
                            return(bk.QuesNo == getParent[e.RowIndex].QuesNo);
                        }
                            );


                        obj.objLicenseDetail.ProductName    = result.objQuestionMas[idx].Name;
                        obj.objLicenseDetail.ProductType    = dataGridView1.Columns[e.ColumnIndex].HeaderText;
                        obj.objLicenseDetail.DateOfPurchase = result.objQuestionMas[idx].QuesBankDate;
                        obj.objLicenseDetail.DateOfExpiry   = Convert.ToDateTime(result.objQuestionMas[idx].QuesBankDate).AddDays(365).ToString();
                        obj.ShowDialog();
                    }
                }
                else if (dataGridView1.Columns[e.ColumnIndex].Name == "MockTest")
                {
                    DataGridViewDisableButtonCell buttonCell = (DataGridViewDisableButtonCell)dataGridView1.Rows[e.RowIndex].Cells["MockTest"];
                    //NEW REQ
                    if (buttonCell.Value.ToString() != "Purchases")
                    {
                        string strMockFileName = null;
                        if (!Utility.isStandard())
                        {
                            strMockFileName = KnowledgeMatrix.Properties.Settings.Default.SharePath + @"\" + @"MockTest\" + getParent[RowIndex].Name + "_" + EntropyGenerator.GetIPForMachine() + "_Mock.txt";
                        }


                        string decryptedData = ValidateImport(strMockFileName);
                        if (decryptedData != null)
                        {
                            string FileName = Application.StartupPath + Utility.FolderType() + @"MockTest\MockList" + ".txt";
                            if (File.Exists(FileName))
                            {
                                File.Delete(FileName);
                            }

                            FileCryptography.encryptedData = decryptedData;
                            FileCryptography.FileName      = FileName;
                            FileCryptography.entropy       = UnicodeEncoding.ASCII.GetBytes(KnowledgeMatrix.Properties.Settings.Default.ProductKey);
                            FileCryptography.DoEncrypt();
                            QuestionManagementWithQuesColl result1 = ObjectXMLSerializer <QuestionManagementWithQuesColl> .Load(FileName);

                            if (result1 == null || result1.objQuestionManagement.Count() == 0)
                            {
                                File.Delete(FileName);
                                MessageBox.Show("No data available to import. Please contact Sales team");
                            }
                            else
                            {
                                FileName = Application.StartupPath + Utility.FolderType() + @"MockTest\MockTestList.txt";

                                QuestionManagementColl objQuestionManagementColl;
                                if (File.Exists(FileName))
                                {
                                    objQuestionManagementColl = ObjectXMLSerializer <QuestionManagementColl> .Load(FileName);
                                }
                                else
                                {
                                    objQuestionManagementColl = new QuestionManagementColl();
                                    objQuestionManagementColl.objQuestionManagement = new List <QuestionManagement>();
                                }
                                for (int ik = 0; ik < result1.objQuestionManagement.Count(); ik++)
                                {
                                    int i = (from QuestionManagement in objQuestionManagementColl.objQuestionManagement
                                             where QuestionManagement.ExamName == result1.objQuestionManagement[ik].ExamName
                                             select QuestionManagement).ToList().Count();

                                    if (i == 0)
                                    {
                                        QuestionManagement objQuestionManagement = new QuestionManagement();// =(QuestionManagement) result1.objQuestionManagement[ik];
                                        objQuestionManagement.ExamName = result1.objQuestionManagement[ik].ExamName;
                                        objQuestionManagement.ExamPasPercentageScore = result1.objQuestionManagement[ik].ExamPasPercentageScore;
                                        objQuestionManagement.TestTime           = result1.objQuestionManagement[ik].TestTime;
                                        objQuestionManagement.ExamMode           = result1.objQuestionManagement[ik].ExamMode;
                                        objQuestionManagement.QuestionComplexity = result1.objQuestionManagement[ik].QuestionComplexity;
                                        objQuestionManagement.QuestionType       = result1.objQuestionManagement[ik].QuestionType;
                                        objQuestionManagement.TotalQuestions     = result1.objQuestionManagement[ik].TotalQuestions;
                                        objQuestionManagement.TestTime           = result1.objQuestionManagement[ik].TestTime;

                                        QuestionDetailData objQuestions = new QuestionDetailData();
                                        objQuestions.objQuestionDetail = new List <QuestionDetail>();
                                        objQuestions.objQuestionDetail.AddRange(result1.objQuestionManagement[ik].objQuestionDetail);
                                        if (File.Exists(XML_FILE_NAME1))
                                        {
                                            File.Delete(XML_FILE_NAME1);
                                        }

                                        ObjectXMLSerializer <QuestionDetailData> .Save(objQuestions, Application.StartupPath + Utility.FolderType() + @"MockTest\" + result1.objQuestionManagement[ik].ExamName + ".txt");

                                        //FileCryptography.encryptedData = File.ReadAllText(XML_FILE_NAME1);
                                        //FileCryptography.FileName = Application.StartupPath + @"\QuestionPaper\" + result1.objQuestionManagement[ik].ExamName + ".txt";
                                        //FileCryptography.DoEncrypt();
                                        //File.Delete(XML_FILE_NAME1);

                                        //ObjectXMLSerializer<QuestionDetailData>.Save(objQuestions, Application.StartupPath + @"\QuestionPaper\" + result1.objQuestionManagement[ik].ExamName + ".txt");

                                        objQuestionManagement.FileName      = Application.StartupPath + Utility.FolderType() + @"MockTest\" + result1.objQuestionManagement[ik].ExamName + ".txt";
                                        objQuestionManagement.QuestionTopic = result1.objQuestionManagement[ik].QuestionTopic;
                                        objQuestionManagement.Subject       = result1.objQuestionManagement[ik].Subject;
                                        objQuestionManagement.TestStatus    = result1.objQuestionManagement[ik].TestStatus;
                                        objQuestionManagement.TestResult    = result1.objQuestionManagement[ik].TestResult;
                                        objQuestionManagement.MockTestDate  = System.DateTime.Now.ToString();
                                        objQuestionManagementColl.objQuestionManagement.Add(objQuestionManagement);
                                    }
                                }

                                if (File.Exists(FileName))
                                {
                                    File.Delete(FileName);
                                }

                                ObjectXMLSerializer <QuestionManagementColl> .Save(objQuestionManagementColl, FileName);

                                buttonCell.Value = "Purchased";


                                buttonCell.Enabled = false;

                                //Update the Product Catalog
                                int idx = result.objQuestionMas.FindIndex(
                                    delegate(QuestionMast bk)
                                {
                                    return(bk.QuesNo == getParent[e.RowIndex].QuesNo);
                                }
                                    );

                                result.objQuestionMas[idx].MockTest     = "Purchased";
                                result.objQuestionMas[idx].QuesBankDate = System.DateTime.Now.ToString();

                                ObjectXMLSerializer <QuestionsData> .Save(result, KnowledgeMatrix.Framework.Utility.XML_QUESTION_NAME);


                                //FileCryptography.encryptedData = File.ReadAllText(XML_FILE_NAME1);
                                //FileCryptography.FileName = FileName;
                                //FileCryptography.DoEncrypt();
                                //File.Delete(XML_FILE_NAME1);

                                //ObjectXMLSerializer<QuestionManagementColl>.Save(objQuestionManagementColl, FileName);

                                MessageBox.Show("Data imported Successfully");
                            }
                        }
                    }
                    else
                    {
                        LicenseDetail obj = new LicenseDetail();
                        int           idx = result.objQuestionMas.FindIndex(
                            delegate(QuestionMast bk)
                        {
                            return(bk.QuesNo == getParent[e.RowIndex].QuesNo);
                        }
                            );


                        obj.objLicenseDetail.ProductName    = result.objQuestionMas[idx].Name;
                        obj.objLicenseDetail.ProductType    = dataGridView1.Columns[e.ColumnIndex].HeaderText;
                        obj.objLicenseDetail.DateOfPurchase = result.objQuestionMas[idx].QuesBankDate;
                        obj.objLicenseDetail.DateOfExpiry   = Convert.ToDateTime(result.objQuestionMas[idx].QuesBankDate).AddDays(365).ToString();
                        obj.ShowDialog();
                    }
                }
            }
        }