private void simpleButtonSaveDialog_Click(object sender, EventArgs e) { if (!dxValidationProvider1.Validate()) return; string _msg = "Dialog already exist for sub-campaign " + lookUpEditSubCampaign.Text.ToUpper() + "." + Environment.NewLine + "Only one(1) dialog per sub-campaign is allowed."; if (SubCampaignDialog == null) { if (!ObjectDialog.CanAddDialog((int)lookUpEditSubCampaign.EditValue)) { MessageBox.Show(_msg, "Dialogs", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } else if (ObjectDialog.Exists(textEditDialogname.Text, (int)lookUpEditSubCampaign.EditValue) && (!m_IsEdit || (m_IsEdit && !SubCampaignDialog.DialogName.Equals(textEditDialogname.Text)))) { MessageBox.Show(_msg, "Dialogs", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } } else if (SubCampaignDialog !=null && ObjectDialog.Exists(textEditDialogname.Text, (int)lookUpEditSubCampaign.EditValue, SubCampaignDialog.DialogID)) { if (!m_IsEdit || (m_IsEdit && !SubCampaignDialog.DialogName.Equals(textEditDialogname.Text))) { MessageBox.Show(_msg, "Dialogs", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } } /** * applied so that when pressing save and then pressing done for new entries, * it should validate as edit mode when pressing done. */ if (!m_IsEdit) m_IsEdit = true; var dtDialog = gridControlDialog.DataSource as DataTable; if (dtDialog != null && dtDialog.Rows.Count > 0) dtDialog.AcceptChanges(); Cursor currentCursor = Cursor.Current; Cursor.Current = Cursors.WaitCursor; string dialog_text_json = string.Empty; GridView view = gridViewDialog; if (view != null && view.RowCount > 0) { DataRow row; CampaignQuestionnaire oQuestionnaire = null; JArray jaDiag = new JArray(); JObject joDiag = null; for (int i = 0; i < view.RowCount; i++) { row = view.GetDataRow(i); if (row["content_json"] == null || string.IsNullOrEmpty(row["content_json"].ToString())) continue; oQuestionnaire = CampaignQuestionnaire.InstanciateWith(row["content_json"].ToString()); if (oQuestionnaire == null) continue; if (row["question_text"] != null) oQuestionnaire.Form.Settings.QuestionText = row["question_text"].ToString(); if (row["question_help_text"] != null) oQuestionnaire.Form.Settings.QuestionHelp = row["question_help_text"].ToString(); if (row["question_id"] != null) oQuestionnaire.Form.Settings.DataBindings.question_id = row["question_id"].ToString(); if (row["question_text_language_id"] != null) oQuestionnaire.Form.Settings.DataBindings.questions_text_language_id = row["question_text_language_id"].ToString(); if (row["language_code"] != null) oQuestionnaire.Form.Settings.DataBindings.language_code = row["language_code"].ToString(); if (row["answer_form_id"] != null) oQuestionnaire.Form.Settings.DataBindings.questionlayout_id = row["answer_form_id"].ToString(); if (row["answer_form_language_id"] != null) oQuestionnaire.Form.Settings.DataBindings.questionlayout_language_id = row["answer_form_language_id"].ToString(); joDiag = JObject.Parse(oQuestionnaire.ToJSONString()); jaDiag.Add(joDiag); } dialog_text_json = jaDiag.ToString(Formatting.None); } if (!isSaved) { m_oDialog = new dialog(); m_oDialog.created_date = DateTime.Now; } else { if (m_oDialog == null) { if (SubCampaignDialog != null && SubCampaignDialog.DialogID > 0) { m_oDialog = BPContext.dialogs.FirstOrDefault(q => q.id == SubCampaignDialog.DialogID); } } } m_oDialog.subcampaign_id = Convert.ToInt32(lookUpEditSubCampaign.EditValue); m_oDialog.name = textEditDialogname.Text.Trim(); m_oDialog.dialog_text_json = dialog_text_json; m_oDialog.created_by = UserSession.CurrentUser.UserId; m_oDialog.is_active = true; if (!isSaved) { BPContext.dialogs.AddObject(m_oDialog); isSaved = true; } BPContext.SaveChanges(); if (SubCampaignDialog == null) { SubCampaignDialog = new CTSubCampaignDialogs() { DialogID = m_oDialog.id, DateCreated = m_oDialog.created_date, DialogName = m_oDialog.name, SubCampaignID = m_oDialog.subcampaign_id, SubCampaignTitle = m_oDialog.subcampaign.title }; } /** * lets set this so we can determine on the parent controller * which dialog is to be default selected */ ParentController.DefaultSelectedDialogId = m_oDialog.id; Cursor.Current = currentCursor; if(sender != null && sender.ToString() != "skip") MessageBox.Show("Dialog has been saved.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); //if (this.ParentForm != null) { // this.ParentForm.DialogResult = DialogResult.OK; //} }
public NewDialog(CTSubCampaignDialogs subcampaignDialog) { SubCampaignDialog = subcampaignDialog; Initialize(); m_IsEdit = true; }
private void LoadDialog(CTSubCampaignDialogs subcampaignDialog) { isSaved = true; textEditDialogname.Text = subcampaignDialog.DialogName; lookUpEditCustomer.EditValue = subcampaignDialog.CustomerID; lookUpEditCampaign.EditValue = subcampaignDialog.CampaignID; lookUpEditSubCampaign.EditValue = subcampaignDialog.SubCampaignID; lookUpEditCustomer.Properties.ReadOnly = true; lookUpEditCampaign.Properties.ReadOnly = true; lookUpEditSubCampaign.Properties.ReadOnly = true; m_oDialog = BPContext.dialogs.FirstOrDefault(p => p.id == subcampaignDialog.DialogID); var CQList = new List<CampaignQuestionnaire>(); var QLIDs = new List<int>(); int qlid; if (!string.IsNullOrEmpty(m_oDialog.dialog_text_json)) { var jaDiag = JArray.Parse(m_oDialog.dialog_text_json); CampaignQuestionnaire CQ = null; jaDiag.ForEach(delegate(JToken jt) { /** * https://brightvision.jira.com/browse/PLATFORM-3057 * fixed json text for unwanted characters */ string _json = ValidationUtility.StripJsonInvalidChars(JsonConvert.ToString(jt.ToString(Formatting.None)).Unescape()); //CQ = CampaignQuestionnaire.InstanciateWith(jt.ToString(Formatting.None).Unescape()); CQ = CampaignQuestionnaire.InstanciateWith(_json); if (CQ != null) { if (CQ.Type.ToLower() == QuestionTypeConstants.Schedule) btnCreateSchedule.Enabled = true; if (int.TryParse(CQ.Form.Settings.DataBindings.questionlayout_id, out qlid)) QLIDs.Add(qlid); CQList.Add(CQ); } }); } if (CQList.Count <= 0) { simpleButtonAssignAnswerForm.Enabled = false; return; } DataTable dtDialog = gridControlDialog.DataSource as DataTable; int qid, qtlid; var answerform = (from bp in BPContext.questionlayouts.Include("questionlayout_language") where QLIDs.Contains(bp.id) select bp).ToList(); questionlayout questionLayout = null; questionlayout_language questionLayoutLanguage = null; CTQuestionTags questiontags = null; DataRow newDr = null; var datasource = gridControlQuestions.DataSource as List<CTQuestionTags>; CQList.ForEach(delegate(CampaignQuestionnaire dcq) { if (int.TryParse(dcq.Form.Settings.DataBindings.question_id, out qid) && int.TryParse(dcq.Form.Settings.DataBindings.questions_text_language_id, out qtlid) && int.TryParse(dcq.Form.Settings.DataBindings.questionlayout_id, out qlid)) { questionLayout = answerform.FirstOrDefault(p => p.questions_id == qid && p.id == qlid); if (questionLayout != null) { questionLayoutLanguage = questionLayout.questionlayout_language.FirstOrDefault(p => p.questionlayout_id == questionLayout.id); if(questionLayoutLanguage != null) questiontags = datasource.FirstOrDefault(x => x.question_id == qid && x.question_text_language_id == qtlid); } } if (questiontags != null) { int rowcount = 0; if (dtDialog != null) { //DataRow[] drs = dtDialog.Select("question_text='" + row.question_text + "'"); //if (drs.Length > 0) { // MessageBox.Show("The selected question has already been added to the dialog list.", "Information"); // return; //} else { DataRow[] last = dtDialog.Select("position = Max(position)"); if (last.Length > 0) { rowcount = Convert.ToInt32(last[0].ItemArray[0]); } //} } newDr = dtDialog.NewRow(); newDr["position"] = rowcount + 1; newDr["question_text"] = questiontags.question_text; newDr["question_id"] = questiontags.question_id; newDr["question_text_language_id"] = questiontags.question_text_language_id; newDr["question_help_text"] = questiontags.question_help_text; newDr["question_description"] = questiontags.question_description; newDr["language_code"] = questiontags.language_code; if (questionLayout != null) { newDr["answer_form"] = questionLayout.title; newDr["answer_form_id"] = questionLayout.id; newDr["answer_form_language_id"] = questionLayoutLanguage.id; newDr["content_json"] = questionLayout.content_json; newDr["account_level"] = questionLayout.account_level; } dtDialog.Rows.Add(newDr); dtDialog.AcceptChanges(); simpleButtonAssignAnswerForm.Enabled = true; } }); //show dialog preview simpleButtonShowDialog_Click(null, null); }
public NewDialog(CTSubCampaignDialogs subcampaignDialog) { SubCampaignDialog = subcampaignDialog; Initialize(); }
private void simpleButtonSaveDialog_Click(object sender, EventArgs e) { if (!dxValidationProvider1.Validate()) return; Cursor currentCursor = Cursor.Current; Cursor.Current = Cursors.WaitCursor; GridView view = gridViewDialog; if (view == null || view.RowCount == 0) return; DataRow row; CampaignQuestionnaire oQuestionnaire = null; JArray jaDiag = new JArray(); JObject joDiag = null; for (int i = 0; i < view.RowCount; i++) { row = view.GetDataRow(i); if (row["content_json"] == null || string.IsNullOrEmpty(row["content_json"].ToString())) continue; oQuestionnaire = CampaignQuestionnaire.InstanciateWith(row["content_json"].ToString()); if (oQuestionnaire == null) continue; if (row["question_text"] != null) oQuestionnaire.Form.Settings.QuestionText = row["question_text"].ToString(); if (row["question_help_text"] != null) oQuestionnaire.Form.Settings.QuestionHelp = row["question_help_text"].ToString(); if (row["question_id"] != null) oQuestionnaire.Form.Settings.DataBindings.question_id = row["question_id"].ToString(); if (row["question_text_language_id"] != null) oQuestionnaire.Form.Settings.DataBindings.questions_text_language_id = row["question_text_language_id"].ToString(); if (row["answer_form_id"] != null) oQuestionnaire.Form.Settings.DataBindings.questionlayout_id = row["answer_form_id"].ToString(); if (row["answer_form_language_id"] != null) oQuestionnaire.Form.Settings.DataBindings.questionlayout_id = row["answer_form_language_id"].ToString(); joDiag = JObject.Parse(oQuestionnaire.ToJSONString()); jaDiag.Add(joDiag); } string dialog_text_json = jaDiag.ToString(Formatting.None); if (!isSaved) { m_oDialog = new dialog(); } else { if (m_oDialog == null) { if (SubCampaignDialog != null && SubCampaignDialog.DialogID > 0) { m_oDialog = BPContext.dialogs.FirstOrDefault(q => q.id == SubCampaignDialog.DialogID); } } } m_oDialog.subcampaign_id = Convert.ToInt32(lookUpEditSource.EditValue); m_oDialog.name = textEditDialogname.Text.Trim(); m_oDialog.dialog_text_json = dialog_text_json; m_oDialog.created_date = DateTime.Now; if (!isSaved) { BPContext.dialogs.AddObject(m_oDialog); isSaved = true; } BPContext.SaveChanges(); if (SubCampaignDialog == null) { SubCampaignDialog = new CTSubCampaignDialogs() { DialogID = m_oDialog.id, DateCreated = m_oDialog.created_date, DialogName = m_oDialog.name, SubCampaignID = m_oDialog.subcampaign_id, SubCampaignTitle = m_oDialog.subcampaign.title }; } Cursor.Current = currentCursor; MessageBox.Show("Dialog has been saved.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void LoadDialog(CTSubCampaignDialogs subcampaignDialog) { isSaved = true; textEditDialogname.Text = subcampaignDialog.DialogName; lookUpEditSource.EditValue = subcampaignDialog.SubCampaignID; m_oDialog = BPContext.dialogs.FirstOrDefault(p => p.id == subcampaignDialog.DialogID); var CQList = new List<CampaignQuestionnaire>(); var QLIDs = new List<int>(); var jaDiag = JArray.Parse(m_oDialog.dialog_text_json); CampaignQuestionnaire CQ = null; int qlid; jaDiag.ForEach(delegate(JToken jt) { CQ = CampaignQuestionnaire.InstanciateWith(jt.ToString(Formatting.None).Unescape()); if(CQ != null) { if(int.TryParse(CQ.Form.Settings.DataBindings.questionlayout_id, out qlid)) QLIDs.Add(qlid); CQList.Add(CQ); } }); if (CQList.Count <= 0) { simpleButtonAssignAnswerForm.Enabled = false; return; } DataTable dtDialog = gridControlDialog.DataSource as DataTable; int qid, qtlid; var answerform = (from bp in BPContext.questionlayouts.Include("questionlayout_language") where QLIDs.Contains(bp.id) select bp).ToList(); questionlayout questionLayout = null; CTQuestionTags questiontags = null; DataRow newDr = null; CQList.ForEach(delegate(CampaignQuestionnaire dcq) { var datasource = gridControlQuestions.DataSource as List<CTQuestionTags>; if(int.TryParse(dcq.Form.Settings.DataBindings.question_id, out qid) && int.TryParse(dcq.Form.Settings.DataBindings.questions_text_language_id, out qtlid) && int.TryParse(dcq.Form.Settings.DataBindings.questionlayout_id, out qlid)) { questionLayout = answerform.FirstOrDefault(p => p.questions_id == qid && p.id == qlid); questiontags = datasource.FirstOrDefault(x => x.question_id == qid && x.question_text_language_id == qtlid); } if (questiontags != null) { int rowcount = 0; if (dtDialog != null) { //DataRow[] drs = dtDialog.Select("question_text='" + row.question_text + "'"); //if (drs.Length > 0) { // MessageBox.Show("The selected question has already been added to the dialog list.", "Information"); // return; //} else { DataRow[] last = dtDialog.Select("position = Max(position)"); if (last.Length > 0) { rowcount = Convert.ToInt32(last[0].ItemArray[0]); } //} } newDr = dtDialog.NewRow(); newDr["position"] = rowcount + 1; newDr["question_text"] = questiontags.question_text; newDr["question_id"] = questiontags.question_id; newDr["question_text_language_id"] = questiontags.question_text_language_id; newDr["question_help_text"] = questiontags.question_help_text; newDr["question_description"] = questiontags.question_description; if (questionLayout != null) { newDr["answer_form"] = questionLayout.title; newDr["answer_form_id"] = questionLayout.id; newDr["answer_form_language_id"] = questionLayout.questionlayout_language.FirstOrDefault().id; newDr["content_json"] = questionLayout.content_json; } dtDialog.Rows.Add(newDr); dtDialog.AcceptChanges(); simpleButtonAssignAnswerForm.Enabled = true; } }); }