private void simpleButtonSaveAnswerForm_Click(object sender, EventArgs e) { if (!dxValidationProvider1.Validate()) { return; } Cursor currentCursor = Cursor.Current; Cursor.Current = Cursors.WaitCursor; DataView dtView = gridViewAnswerForm.DataSource as DataView; CampaignQuestionnaire oQuestionnaire = propertyGridControl1.SelectedObject as CampaignQuestionnaire; oQuestionnaire.Form.Settings.QuestionText = ""; oQuestionnaire.Form.Settings.QuestionHelp = ""; oQuestionnaire.Form.Settings.DataBindings.account_level = (bool)rgLevel.EditValue; if (dtView != null && dtView.Table != null) { m_oQuestion = BPContext.questions.FirstOrDefault(p => p.id == QuestionID); DataTable dtAF = dtView.Table; DataRow dr; questionlayout qlayout; questionlayout_language qlang; object general = null; if (eSaveMode == SaveMode.Add) { qlayout = new questionlayout(); qlang = new questionlayout_language(); qlayout.created_by = UserSession.CurrentUser.UserId; dr = dtAF.NewRow(); } else { dr = dtAF.Rows[gridViewAnswerForm.FocusedRowHandle]; if (dr == null) return; int qlid = Convert.ToInt32(dr["question_layout_id"]); qlayout = BPContext.questionlayouts .Include("questionlayout_language") .FirstOrDefault(p => p.id == qlid); qlang = qlayout.questionlayout_language.FirstOrDefault(); qlayout.modified_by = UserSession.CurrentUser.UserId; } qlayout.modified_date = DateTime.Now; qlayout.default_setting = false; qlayout.title = textEditAnswerFormName.EditValue.ToString(); qlayout.content_json = oQuestionnaire.ToJSONString(); qlayout.account_level = (bool)rgLevel.EditValue; general = comboBoxEditAnswerFormGeneralValue.SelectedItem; qlayout.general_value = general != null && !string.IsNullOrEmpty(general.ToString()) ? byte.Parse(general.ToString()) : byte.Parse("0"); qlang.language_id = int.Parse(lookUpEditLanguage.EditValue.ToString()); if (eSaveMode == SaveMode.Add) { qlayout.questionlayout_language.Add(qlang); m_oQuestion.questionlayouts.Add(qlayout); } BPContext.SaveChanges(); IsQLSave = true; dr["question_id"] = QuestionID; dr["question_layout_id"] = qlayout.id; dr["language"] = lookUpEditLanguage.GetColumnValue("name"); dr["language_id"] = lookUpEditLanguage.EditValue; dr["title"] = textEditAnswerFormName.EditValue; dr["component_type"] = comboBoxEditComponentType.SelectedItem; dr["general_value"] = comboBoxEditAnswerFormGeneralValue.SelectedItem; dr["account_level"] = (bool)rgLevel.EditValue; dr["properties"] = oQuestionnaire; if (eSaveMode == SaveMode.Add) dtAF.Rows.Add(dr); dtAF.AcceptChanges(); gridControlAnswerForm.DataSource = dtAF; } lcgAnswerForm.Enabled = false; btnEditAnswerform.Enabled = true; btnDeleteAnswerform.Enabled = true; btnAddAnswerform.Enabled = true; eSaveMode = SaveMode.Unspecified; lookUpEditLanguage.ItemIndex = -1; textEditAnswerFormName.EditValue = ""; comboBoxEditComponentType.SelectedIndex = -1; comboBoxEditAnswerFormGeneralValue.SelectedIndex = -1; propertyGridControl1.SelectedObject = null; //layoutControlGroupPreview.Clear(); DisposeGroupControls(this.layoutControlGroupPreview); layoutControlPreview.Refresh(); ForceCellValueChange(); Cursor.Current = currentCursor; if (sender != null && sender.ToString() != "skip") MessageBox.Show("Answer forms has been saved.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); //if (this.ParentForm != null) { // this.ParentForm.DialogResult = DialogResult.OK; //} }
private void simpleButtonSaveAnswerForm_Click(object sender, EventArgs e) { if (!dxValidationProvider1.Validate()) { return; } Cursor currentCursor = Cursor.Current; Cursor.Current = Cursors.WaitCursor; DataView dtView = gridViewAnswerForm.DataSource as DataView; CampaignQuestionnaire oQuestionnaire = propertyGridControl1.SelectedObject as CampaignQuestionnaire; if (dtView != null && dtView.Table != null) { DataTable dtAF = dtView.Table as DataTable; DataRow dr; if (eSaveMode == SaveMode.Add) { dr = dtAF.NewRow(); } else { dr = dtAF.Rows[gridViewAnswerForm.FocusedRowHandle]; } dr["language"] = lookUpEditLanguage.GetColumnValue("name"); dr["language_id"] = lookUpEditLanguage.EditValue; dr["title"] = textEditAnswerFormName.EditValue; dr["component_type"] = comboBoxEditComponentType.SelectedItem; dr["general_value"] = comboBoxEditAnswerFormGeneralValue.SelectedItem; dr["properties"] = oQuestionnaire; if (eSaveMode == SaveMode.Add) dtAF.Rows.Add(dr); dtAF.AcceptChanges(); gridControlAnswerForm.DataSource = dtAF; } int rowcount = 0; DataTable dt = gridControlAnswerForm.DataSource as DataTable; rowcount = dt.Rows.Count; if(m_oQuestionLayouts == null) m_oQuestionLayouts = BPContext.questionlayouts.Include("questionlayout_language").Where(p => p.questions_id == QuestionID); if(m_oQuestion == null) m_oQuestion = BPContext.questions.FirstOrDefault(p => p.id == QuestionID); if (IsQLSave) { //delete existing questionlayout in this question m_oQuestionLayouts.ToList().ForEach(delegate(questionlayout qt) { BPContext.questionlayout_language.DeleteObject(qt.questionlayout_language.FirstOrDefault()); BPContext.questionlayouts.DeleteObject(qt); }); } DataRowView rowView = null; questionlayout qlayout; questionlayout_language qlang; object general = null; for (int x = 0; x < rowcount; ++x) { rowView = (DataRowView)gridViewAnswerForm.GetRow(x); qlayout = new questionlayout(); qlayout.modified_date = DateTime.Now; qlayout.modified_by = 0; qlayout.created_by = 0; qlayout.default_setting = false; qlayout.title = rowView.Row["title"].ToString(); qlayout.content_json = (rowView["properties"] as CampaignQuestionnaire).ToJSONString(); general = rowView["general_value"]; qlayout.general_value = general != null && !string.IsNullOrEmpty(general.ToString()) ? byte.Parse(general.ToString()) : byte.Parse("0"); qlang = new questionlayout_language(); qlang.language_id = int.Parse(rowView.Row["language_id"].ToString()); qlayout.questionlayout_language.Add(qlang); m_oQuestion.questionlayouts.Add(qlayout); } BPContext.SaveChanges(); IsQLSave = true; lookUpEditLanguage.ItemIndex = -1; textEditAnswerFormName.EditValue = ""; comboBoxEditComponentType.SelectedIndex = -1; comboBoxEditAnswerFormGeneralValue.SelectedIndex = -1; propertyGridControl1.SelectedObject = null; //layoutControlGroupPreview.Clear(); DisposeGroupControls(this.layoutControlGroupPreview); layoutControlPreview.Refresh(); ForceCellValueChange(); Cursor.Current = currentCursor; MessageBox.Show("Answer forms has been saved.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); }