private void btnSave_Click(object sender, EventArgs e) { SaveQuestion saveQuestion = null; string quesModeID = string.Empty; string questionID = string.Empty; MasterDataFunctions mDataFunc = null; QBQuestions qbQuestions = null; List <QBQuestions> qbQuestionsColl = null; QBInfo qbInfo = null; string qbID = string.Empty; try { mDataFunc = new MasterDataFunctions(); saveQuestion = new SaveQuestion(); qbQuestionsColl = new List <QBQuestions>(); if (cbQB.SelectedItem != null) { qbID = ((KeyValuePair <string, string>)cbQB.SelectedItem).Key; } htQBOrder.Clear(); for (int i = 0; i < dgvQB.Rows.Count - 1; i++) { htQBOrder.Add(dgvQB.Rows[i].Cells[0].Value, dgvQB.Rows[i].Cells[3].Value); } foreach (QuestionRelation qr in selectedQuestionRelation) { qbQuestions = new QBQuestions(); qbQuestions.Question_Rel_ID = qr.ID; qbQuestions.Order = htQBOrder[qr.ID].ToString(); qbQuestions.EntityState = QbQuestionsEntityState; qbQuestionsColl.Add(qbQuestions); } qbInfo = new QBInfo(); qbInfo.ID = string.IsNullOrWhiteSpace(qbID) ? string.Empty : qbID; qbInfo.QBName = txtQBName.Text; qbInfo.Remarks = txtQBRemarks.Text; qbInfo.QBQuestionsEntityState = isQBQuestionChanged ? EntityOperationalState.Update : EntityOperationalState.None; qbInfo.EntityState = QbQuestionsEntityState; qbInfo.QBQuestions = qbQuestionsColl; isQBQuestionChanged = false; mDataFunc.AddQuestionBank(qbInfo); MessageBox.Show("Question Bank saved."); ResetAll(); LoadQBCombo(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void AddQuestionBank(oEEntiti Qbinfo) { DataTable dtQuestionBank = null; DataTable dtQBQuestions = null; DataRow drNewQB = null; DataRow drNewQBRel = null; List <DataRow> drNewQBRelColl = null; QBInfo qbinfo = null; string qbID = string.Empty; try { qbinfo = Qbinfo as QBInfo; LoadXML(); dtQuestionBank = oeEntity.Tables[EntityConstents.TBL_QUESTIONSBANK]; dtQBQuestions = oeEntity.Tables[EntityConstents.TBL_QUESTIONSBANK_QUES]; if (qbinfo.EntityState == EntityOperationalState.New) { drNewQB = dtQuestionBank.NewRow(); drNewQB[EntityConstents.COL_QUESTIONSBANK_ID] = Guid.NewGuid().ToString(); } else { drNewQB = dtQuestionBank.AsEnumerable().Where(ans => ans.Field <string>("ID") == qbinfo.ID).SingleOrDefault(); } qbID = drNewQB[EntityConstents.COL_QUESTIONSBANK_ID].ToString(); drNewQB[EntityConstents.COL_QUESTIONSBANK_EXAMNAME] = qbinfo.QBName; drNewQB[EntityConstents.COL_QUESTIONSBANK_REMARKS] = qbinfo.Remarks; if (qbinfo.EntityState == EntityOperationalState.New) { dtQuestionBank.Rows.Add(drNewQB); } if (qbinfo.QBQuestionsEntityState == EntityOperationalState.New || qbinfo.QBQuestionsEntityState == EntityOperationalState.Update) { if (qbinfo.QBQuestionsEntityState == EntityOperationalState.Update) { drNewQBRelColl = dtQBQuestions.AsEnumerable().Where(ans => ans.Field <string>("Fk_Question_Bank") == qbID).ToList(); if (drNewQBRelColl != null && drNewQBRelColl.Count > 0) { for (int cnt = drNewQBRelColl.Count - 1; cnt >= 0; cnt--) { dtQBQuestions.Rows.Remove(drNewQBRelColl[cnt]); } } } foreach (QBQuestions qbq in qbinfo.QBQuestions) { drNewQBRel = dtQBQuestions.NewRow(); drNewQBRel[EntityConstents.COL_QUESTIONSBANK_QUES_ID] = Guid.NewGuid().ToString(); drNewQBRel[EntityConstents.COL_QUESTIONSBANK_QUES_REL_ID] = qbq.Question_Rel_ID; drNewQBRel[EntityConstents.COL_QUESTIONSBANK_QUES_BANK_ID] = qbID; drNewQBRel[EntityConstents.COL_QUESTIONSBANK_QUES_ORDER] = qbq.Order; dtQBQuestions.Rows.Add(drNewQBRel); } } saveXML(oeEntity); } catch { throw; } }