Exemplo n.º 1
0
        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;
            //}
        }
Exemplo n.º 2
0
 public NewDialog(CTSubCampaignDialogs subcampaignDialog)
 {
     SubCampaignDialog = subcampaignDialog;
     Initialize();
     m_IsEdit = true;
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public NewDialog(CTSubCampaignDialogs subcampaignDialog)
 {
     SubCampaignDialog = subcampaignDialog;
     Initialize();
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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;
                }
            });
        }