Esempio n. 1
0
        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;
            //}
        }
Esempio n. 2
0
        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);
        }