示例#1
0
        public LicenseManagement()
        {
            InitializeComponent();
            txtName.Focus();
            this.Size = new System.Drawing.Size(Int32.Parse(KnowledgeMatrix.Properties.Settings.Default.PanelWidth), Int32.Parse(KnowledgeMatrix.Properties.Settings.Default.PanelHeight));
            // serialBox1.Text = "1234567890ABCDEFGHIJKLMNO";

            if (Utility.isAppValidated())
            {
                button1.Text    = "Activated!!!";
                button1.Enabled = false;
            }

            if (Utility.IsAdmin())
            {
                button1.Visible     = false;
                button3.Visible     = true;
                btnRegister.Visible = false;
                txtIP.Text          = EntropyGenerator.GetIPForMachine();
                ImpLicFile.Visible  = true;
                txtIP.ReadOnly      = false;
                serialBox1.Text     = Guid.NewGuid().ToString().Replace("-", "").Remove(20);
            }
            else
            {
                ImpLicFile.Visible = false;
                serialBox1.Text    = "";
                button1.Visible    = true;
                button3.Visible    = false;
                txtIP.Text         = EntropyGenerator.GetIPForMachine();
                txtIP.ReadOnly     = true;
                serialBox1.Enabled = true;
            }
        }
        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);
            }
        }
        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();
        }
        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);
        }
        static void Main()
        {
            // string [] ab=Environment.GetCommandLineArgs();
            //MessageBox.Show(ab[0]);
            //   AuthorizationOperations obj = new AuthorizationOperations();
            // obj.isUserAccessible(OperationNames.TypeOfOperations.eTutor_Manage);

            // Add the event handler for handling UI thread exceptions to the event.
            Application.ThreadException += new
                                           ThreadExceptionEventHandler(ThreadExceptionHandler);

            // Set the unhandled exception mode to force all Windows Forms errors
            // to go through our handler.
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

            //  Utility.compress(@"Second Standard Science  - NSO.txt");

            // Add the event handler for handling non-UI thread exceptions to the event.
            AppDomain.CurrentDomain.UnhandledException += new
                                                          UnhandledExceptionEventHandler(UnhandledExceptionHandler);

            SplashScreen.SplashScreen.ShowSplashScreen();
            Application.DoEvents();


            SplashScreen.SplashScreen.SetStatus("Validating App Installation...");

            //Thread ms_oThread = null;
            //ms_oThread = new Thread(new ThreadStart(ShowForm));
            //ms_oThread.IsBackground = true;
            //ms_oThread.SetApartmentState(ApartmentState.MTA);
            //ms_oThread.Start();
            //Console.WriteLine("Before sleep");
            System.Threading.Thread.Sleep(2500);
            //Console.WriteLine("After sleep");
            validateAndCreateDirectory(@"QuestionPaper");
            validateAndCreateDirectory(@"QuestionBank");
            validateAndCreateDirectory(@"MockTest");
            validateAndCreateDirectory(@"eTutor");
            validateAndCreateDirectory(@"ProductsManagement");

            //if (!Directory.Exists(Application.StartupPath + @"\QuestionPaper\"))
            //    Directory.CreateDirectory(Application.StartupPath + @"\QuestionPaper\");
            //if (!Directory.Exists(Application.StartupPath + @"\QuestionBank\"))
            //    Directory.CreateDirectory(Application.StartupPath + @"\QuestionBank\");
            //if (!Directory.Exists(Application.StartupPath + @"\MockTest\"))
            //    Directory.CreateDirectory(Application.StartupPath + @"\MockTest\");
            //if (!Directory.Exists(Application.StartupPath + @"\eTutor\"))
            //    Directory.CreateDirectory(Application.StartupPath + @"\eTutor\");
            //if (!Directory.Exists(Application.StartupPath + @"\ProductsManagement\"))
            //    Directory.CreateDirectory(Application.StartupPath + @"\ProductsManagement\");


            // MessageBox.Show(EntropyGenerator.GetIPForMachine());
            //   MessageBox.Show(Properties.Settings.Default.IP);
            //  Properties.Settings.Default.Authenicated = "false";
            // Properties.Settings.Default.Save();
            // MessageBox.Show(Utility.isAppValidated().ToString());
            //MessageBox.Show(Application.StartupPath);
            //EncDec.Encrypt(@"C:\Users\224702\Desktop\Sample.txt", @"C:\Users\224702\Desktop\Sample1.txt", @"127.0.0.1");
            //EncDec.Decrypt(@"C:\Users\224702\Desktop\Sample1.txt", @"C:\Users\224702\Desktop\Sample2.txt", @"127.0.0.1");


            // Utility.ResetActivation();
            if (Utility.isAppValidated())
            {
                //check if the ip is same as in settings
                SplashScreen.SplashScreen.SetStatus("Validating User Info... ");

                if (KnowledgeMatrix.Properties.Settings.Default.IP != EntropyGenerator.GetIPForMachine())
                {
                    if (KnowledgeMatrix.Properties.Settings.Default.Setting == EntropyGenerator.GetSystemInfo(""))
                    {
                        if (KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate != null &&
                            KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate >= DateTime.Now)//Check the datetime
                        {
                            SplashScreen.SplashScreen.CloseForm();
                            MessageBox.Show("The system is tampered. Contact Administrator.");
                        }
                        else
                        {
                            SplashScreen.SplashScreen.CloseForm();
                            KnowledgeMatrix.Properties.Settings.Default.IP = EntropyGenerator.GetIPForMachine();
                            KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate = DateTime.Now;
                            KnowledgeMatrix.Properties.Settings.Default.Save();
                            MessageBox.Show("The app is used under different IP but in same machine.");
                            Application.EnableVisualStyles();
                            //   Application.SetCompatibleTextRenderingDefault(false);
                            // Application.Run(new frmMasterDetailGrid());
                            Application.Run(new Form1());
                        }
                    }
                    else
                    {
                        MessageBox.Show("The app is tampered. Contact Administrator.");
                    }
                }
                else
                {
                    if (KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate != null &&
                        KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate >= DateTime.Now)//Check the datetime
                    {
                        MessageBox.Show("The system is tampered. Contact Administrator.");
                    }
                    else
                    {
                        SplashScreen.SplashScreen.CloseForm();
                        KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate = DateTime.Now;
                        KnowledgeMatrix.Properties.Settings.Default.Save();
                        Application.EnableVisualStyles();
                        // Application.SetCompatibleTextRenderingDefault(false);
                        Application.Run(new Form1());
                        //Application.Run(new frmMasterDetailGrid());
                    }
                }
            }
            else
            {
                SplashScreen.SplashScreen.CloseForm();
                //FileCryptography.DoEncryptDecrypt();
                KnowledgeMatrix.Properties.Settings.Default.LastAccessedDate = DateTime.Now;
                KnowledgeMatrix.Properties.Settings.Default.Save();
                Application.EnableVisualStyles();
                // Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
                // Application.Run(new frmMasterDetailGrid());
                if (System.Environment.UserInteractive)
                {
                    //string parameter = string.Concat(args);
                    //switch (parameter)
                    //{
                    //case "--install":
                    //DemoWinAppInstaller obj=new DemoWinAppInstaller();
                    //obj = null;//.Install();//(new string[] { Assembly.GetExecutingAssembly().Location });
                    //  break;
                    //case "--uninstall":
                    //    ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
                    //    break;
                    //}
                }
                else
                {
                }
            }
        }
示例#6
0
 public void AddProductPurchase(LicenseDetailInfo obj)
 {
     try
     {
         string txtSQLQuery = "insert into  ProductPurchase (LicenseMasterID,IP,ProductName,ProductType,DateOfPurchase,DateOfExpiry,CreateDateTime,IPAdmin) values (" + obj.LicenseMasterID + ",'" + obj.IP + "','" + obj.ProductName
                              + "','" + obj.ProductType + "','" + System.DateTime.Now.ToString() + "','" + System.DateTime.Now.AddDays(365).ToString() + "','" + System.DateTime.Now.ToString() + "','" + EntropyGenerator.GetIPForMachine() + "')";
         ExecuteQuery(txtSQLQuery);
     }
     catch (Exception ex)
     {
         LogEntry.WriteLog(ex, "Database DemoT.s3db Record AddProductPurchase Insertion Exception");
         //MessageBox.Show(ex.InnerException.ToString());
     }
 }
        public PurchaseManagement()
        {
            InitializeComponent();
            #region DataGrid Definition
            //   getParent = ObjectXMLSerializer<QuestionsData>.Load(XML_QUESTION_NAME);
            label1.Text = "System IP : " + EntropyGenerator.GetIPForMachine();
            this.Size   = new System.Drawing.Size(Int32.Parse(KnowledgeMatrix.Properties.Settings.Default.PanelWidth), Int32.Parse(KnowledgeMatrix.Properties.Settings.Default.PanelHeight));
            if (File.Exists(Utility.XML_QUESTION_NAME))
            {
                result = ObjectXMLSerializer <QuestionsData> .Load(Utility.XML_QUESTION_NAME);
            }
            else
            {
                MessageBox.Show("Kindly validate the license. Contact System Administrator");
                return;
            }
            DataGridViewTextBoxColumn col0 = new DataGridViewTextBoxColumn();
            col0.ReadOnly   = true;
            col0.HeaderText = "Product Name";
            col0.Name       = "ProductName";
            dataGridView1.Columns.Add(col0);
            this.dataGridView1.Columns[0].Width = 445;

            DataGridViewDisableButtonColumn buttonColumn =
                new DataGridViewDisableButtonColumn();
            buttonColumn.HeaderText = "Km-Knowledge Tutor";
            buttonColumn.Name       = "eTutor";
            buttonColumn.Text       = "Purchase";
            buttonColumn.Tag        = "eTutor";
            dataGridView1.Columns.Add(buttonColumn);


            DataGridViewDisableButtonColumn buttonColumn1 =
                new DataGridViewDisableButtonColumn();
            buttonColumn1.HeaderText = "Km- Knowledge Base";
            buttonColumn1.Name       = "QuestionBank";
            buttonColumn1.Tag        = "QuestionBank";
            buttonColumn1.Text       = "Purchase";
            //buttonColumn1.UseColumnTextForButtonValue = false;

            dataGridView1.Columns.Add(buttonColumn1);


            DataGridViewDisableButtonColumn buttonColumn2 =
                new DataGridViewDisableButtonColumn();
            buttonColumn2.HeaderText = "Km-Knowledge Assessment";
            buttonColumn2.Name       = "QuestionPaper";
            buttonColumn2.Tag        = "QuestionBankGeneration";
            buttonColumn2.Text       = "Purchase";
            //buttonColumn2.UseColumnTextForButtonValue = false;
            dataGridView1.Columns.Add(buttonColumn2);
            this.dataGridView1.Columns[3].Width = 100;

            DataGridViewDisableButtonColumn buttonColumn3 =
                new DataGridViewDisableButtonColumn();
            buttonColumn3.HeaderText = "Km-Knowledge Evaluator";
            buttonColumn3.Name       = "MockTest";
            buttonColumn3.Tag        = "MockTest";
            buttonColumn3.Text       = "Purchase";
            // buttonColumn3.UseColumnTextForButtonValue = false;

            dataGridView1.Columns.Add(buttonColumn3);


            // dataGridView1.Columns.Add(column0);

            //  dataGridView1.RowCount = 2;
            // dataGridView1.AutoSize = true;
            dataGridView1.AllowUserToAddRows = false;
            dataGridView1.ColumnHeadersDefaultCellStyle.Alignment =
                DataGridViewContentAlignment.MiddleCenter;
            dataGridView1.Update();// = buttonColumn3;
            #endregion
            dataGridView1.CellClick +=
                new DataGridViewCellEventHandler(dataGridView1_CellClick);

            //  dataGridView1.Dock = DockStyle.Fill;
            dataGridView1.BackgroundColor = Color.LightGray;
            dataGridView1.BorderStyle     = BorderStyle.Fixed3D;

            // Set RowHeadersDefaultCellStyle.SelectionBackColor so that its default
            // value won't override DataGridView.DefaultCellStyle.SelectionBackColor.
            dataGridView1.RowHeadersDefaultCellStyle.SelectionBackColor = Color.Empty;

            // Set the selection background color for all the cells.
            dataGridView1.DefaultCellStyle.SelectionBackColor = Color.White;
            dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black;
            //Set RowHeadersDefaultCellStyle.SelectionBackColor so that its default
            // value won't override DataGridView.DefaultCellStyle.SelectionBackColor.
            dataGridView1.RowHeadersDefaultCellStyle.SelectionBackColor = Color.Empty;

            // Set the background color for all rows and for alternating rows.
            // The value for alternating rows overrides the value for all rows.
            dataGridView1.RowsDefaultCellStyle.BackColor            = Color.LightBlue;
            dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.MediumAquamarine;

            //// Set the text for each button.
            if (result != null && result.objQuestionMas.Count > 0)
            {
                //Get the First Level Node using Parent Node is null
                getParent =
                    (from QuestionMast in result.objQuestionMas
                     where QuestionMast.ParentParentQuestionNo == 0 && QuestionMast.ParentQuestionNo == 0
                     select QuestionMast).ToList();
                dataGridView1.RowCount = getParent.Count;
                for (int prntCnt = 0; prntCnt < getParent.Count; prntCnt++)
                {
                    dataGridView1.Rows[prntCnt].Cells["ProductName"].Value = getParent[prntCnt].Name;

                    if (Utility.IsAdmin())
                    {
                        dataGridView1.Rows[prntCnt].Cells["eTutor"].Value        = "Export";
                        dataGridView1.Rows[prntCnt].Cells["QuestionBank"].Value  = "Export";
                        dataGridView1.Rows[prntCnt].Cells["QuestionPaper"].Value = "Export";
                        dataGridView1.Rows[prntCnt].Cells["MockTest"].Value      = "Export";
                    }
                    else
                    {
                        dataGridView1.Rows[prntCnt].Cells["eTutor"].Value        = getParent[prntCnt].eTutor;
                        dataGridView1.Rows[prntCnt].Cells["QuestionBank"].Value  = getParent[prntCnt].QuesBank;
                        dataGridView1.Rows[prntCnt].Cells["QuestionPaper"].Value = getParent[prntCnt].QuesBankGen;
                        dataGridView1.Rows[prntCnt].Cells["MockTest"].Value      = getParent[prntCnt].MockTest;
                    }
                }
            }

            if (Utility.IsAdmin())
            {
                //button3.Visible = true;
                textBox1.Visible = true;
                button5.Enabled  = false;
                //textBox1.Text = EntropyGenerator.GetIPForMachine();
                label2.Visible = true;
            }
            else
            {
                button3.Visible = false;
                button5.Visible = button6.Visible = textBox1.Visible = false;

                label2.Visible = false;
            }
        }
        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();
                    }
                }
            }
        }