// Override the Clone method so that the Enabled property is copied. public override object Clone() { DataGridViewDisableButtonCell cell = (DataGridViewDisableButtonCell)base.Clone(); cell.Enabled = this.Enabled; return(cell); }
// If the user clicks on an enabled button cell, this event handler // reports that the button is enabled. void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.Columns[e.ColumnIndex].Name == "Buttons") { DataGridViewDisableButtonCell buttonCell = (DataGridViewDisableButtonCell)dataGridView1. Rows[e.RowIndex].Cells["Buttons"]; if (buttonCell.Enabled) { MessageBox.Show(dataGridView1.Rows[e.RowIndex]. Cells[e.ColumnIndex].Value.ToString() + " is enabled"); } } }
// If a check box cell is clicked, this event handler disables // or enables the button in the same row as the clicked cell. public void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.Columns[e.ColumnIndex].Name == "CheckBoxes") { DataGridViewDisableButtonCell buttonCell = (DataGridViewDisableButtonCell)dataGridView1. Rows[e.RowIndex].Cells["Buttons"]; DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1. Rows[e.RowIndex].Cells["CheckBoxes"]; buttonCell.Enabled = !(Boolean)checkCell.Value; dataGridView1.Invalidate(); } }
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(); } } } }