protected override EmptyResponseData ProcessRequest(APIRequest <DelQuestionnaireAnswerRecordRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;

            List <string> AnswerOptionIDs = new List <string>();


            var QuestionnaireAnswerRecordBLL = new T_QN_QuestionnaireAnswerRecordBLL(loggingSessionInfo);

            var QuestionnaireOptionCountBLL = new T_QN_QuestionnaireOptionCountBLL(this.CurrentUserInfo);

            for (int i = 0; i < para.VipIDs.Length; i++)
            {
                string[] tempAnswerOptionID = QuestionnaireAnswerRecordBLL.GetVipIDModelList(para.VipIDs[0]);

                ArrangeValue(tempAnswerOptionID, ref AnswerOptionIDs);
            }

            #region 修改记录数
            var pTran = QuestionnaireAnswerRecordBLL.GetTran();

            using (pTran.Connection)
            {
                try
                {
                    QuestionnaireOptionCountBLL.UpdateSelectedCount(AnswerOptionIDs, para.ActivityID, pTran);
                    if (para.VipIDs != null)
                    {
                        QuestionnaireAnswerRecordBLL.DeletevipIDs(para.VipIDs);
                    }
                    pTran.Commit();//提交事物
                }
                catch (Exception ex)
                {
                    pTran.Rollback();

                    throw new APIException(ex.Message);
                }
            }

            #endregion

            return(rd);
        }
Example #2
0
        protected override GetScoreRecoveryInformationRD ProcessRequest(APIRequest <GetQuestionnaireAnswerRecordRP> pRequest)
        {
            var rd   = new GetScoreRecoveryInformationRD();
            var para = pRequest.Parameters;
            T_QN_QuestionnaireAnswerRecordEntity model_QuestionnaireAnswerRecordEntity = null;


            var QuestionnaireAnswerRecordBLL = new T_QN_QuestionnaireAnswerRecordBLL(this.CurrentUserInfo);
            var QuestionnaireOptionCountBLL  = new T_QN_QuestionnaireOptionCountBLL(this.CurrentUserInfo);

            var ScoreRecoveryInformationBLL = new T_QN_ScoreRecoveryInformationBLL(this.CurrentUserInfo);


            if (para != null)
            {
                if (para.VipID == null || para.VipID == "")
                {
                    para.VipID = Guid.NewGuid().ToString();
                }
                var SumScore = 0;

                var createqoc = new List <T_QN_QuestionnaireOptionCountEntity>();
                var updateqoc = new List <T_QN_QuestionnaireOptionCountEntity>();
                var createqar = new List <T_QN_QuestionnaireAnswerRecordEntity>();

                for (int i = 0; i < para.QuestionnaireAnswerRecordlist.Count; i++)
                {
                    var qarl = para.QuestionnaireAnswerRecordlist[i];

                    string AnswerOptionIDs = "";

                    #region 答题选项统计
                    if (qarl.optionlist != null)
                    {
                        for (int j = 0; j < qarl.optionlist.Count; j++)
                        {
                            var option = qarl.optionlist[j];
                            if (!(option.OptionID == null || option.OptionID == "" || option.OptionName == null || option.OptionName == ""))
                            {
                                AnswerOptionIDs += option.OptionID + ",";
                                var model_qoce = QuestionnaireOptionCountBLL.isExist(option.OptionID, para.ActivityID);

                                if (model_qoce != null)
                                {
                                    model_qoce.SelectedCount += 1;
                                }
                                else
                                {
                                    model_qoce                   = new T_QN_QuestionnaireOptionCountEntity();
                                    model_qoce.CustomerID        = this.CurrentUserInfo.ClientID;
                                    model_qoce.ActivityID        = para.ActivityID;
                                    model_qoce.ActivityName      = para.ActivityName;
                                    model_qoce.QuestionID        = qarl.QuestionID;
                                    model_qoce.QuestionnaireID   = para.QuestionnaireID;
                                    model_qoce.QuestionnaireName = para.QuestionnaireName;
                                    model_qoce.QuestionName      = qarl.QuestionName;
                                    model_qoce.OptionID          = option.OptionID;
                                    model_qoce.OptionName        = option.OptionName;
                                    model_qoce.SelectedCount     = 1;
                                }


                                if (model_qoce.QuestionnaireOptionCountID == null)
                                {
                                    createqoc.Add(model_qoce);
                                }
                                else
                                {
                                    updateqoc.Add(model_qoce);
                                }
                            }
                        }
                    }

                    #endregion

                    #region 新增答题记录
                    model_QuestionnaireAnswerRecordEntity = new T_QN_QuestionnaireAnswerRecordEntity
                    {
                        CustomerID        = this.CurrentUserInfo.ClientID,
                        ActivityID        = para.ActivityID,
                        ActivityName      = para.ActivityName,
                        AnswerAddress     = qarl.AnswerAddress,
                        AnswerCity        = qarl.AnswerCity,
                        AnswerCounty      = qarl.AnswerCounty,
                        AnswerDate        = qarl.AnswerDate,
                        AnswerOption      = qarl.AnswerOption,
                        AnswerOptionId    = AnswerOptionIDs,
                        AnswerProvince    = qarl.AnswerProvince,
                        AnswerText        = qarl.AnswerText,
                        QuestionID        = qarl.QuestionID,
                        QuestionidType    = qarl.QuestionidType,
                        QuestionnaireID   = para.QuestionnaireID,
                        QuestionnaireName = para.QuestionnaireName,
                        QuestionName      = qarl.QuestionName,
                        QuestionScore     = qarl.QuestionScore,
                        VipID             = para.VipID,
                        Status            = 1
                    };
                    SumScore += qarl.SumScore;

                    createqar.Add(model_QuestionnaireAnswerRecordEntity);

                    #endregion
                }


                #region 新增答题记录和修改记录数
                var pTran = QuestionnaireAnswerRecordBLL.GetTran();

                using (pTran.Connection)
                {
                    try
                    {
                        for (int j = 0; j < createqoc.Count; j++)
                        {
                            QuestionnaireOptionCountBLL.Create(createqoc[j], pTran);
                        }

                        for (int j = 0; j < updateqoc.Count; j++)
                        {
                            QuestionnaireOptionCountBLL.Update(updateqoc[j], pTran);
                        }

                        for (int j = 0; j < createqar.Count; j++)
                        {
                            QuestionnaireAnswerRecordBLL.Create(createqar[j], pTran);
                        }

                        pTran.Commit();//提交事物
                    }
                    catch (Exception ex)
                    {
                        pTran.Rollback();

                        throw new APIException(ex.Message);
                    }

                    #endregion
                }



                var QuestionnaireAnswerRecordID = model_QuestionnaireAnswerRecordEntity.QuestionnaireAnswerRecordID;

                #region 获取结束页展示数据
                if (SumScore > 0)
                {
                    T_QN_ScoreRecoveryInformationEntity[] list_ScoreRecoveryInformation = ScoreRecoveryInformationBLL.getScoreRecoveryInformationByScore(para.QuestionnaireID, SumScore.ToString());

                    if (list_ScoreRecoveryInformation.Length > 0)
                    {
                        T_QN_ScoreRecoveryInformationEntity tempentity = list_ScoreRecoveryInformation[0];

                        rd.RecoveryContent = tempentity.RecoveryContent;
                        rd.RecoveryImg     = tempentity.RecoveryImg;
                        rd.RecoveryType    = tempentity.RecoveryType;
                    }
                }
                #endregion
            }



            return(rd);
        }
        /// <summary>
        /// 获取答题记录详细信息
        /// </summary>
        /// <param name="ActivityID">活动id</param>
        /// <param name="QuestionnaireID">问卷id</param>
        /// <returns></returns>
        public static DataTable GetQuestionnaireInfor(string ActivityID, string QuestionnaireID, out TitleName[] TitleData)
        {
            DataTable dt = new DataTable();

            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var QARMBLL            = new T_QN_QuestionnaireAnswerRecordBLL(loggingSessionInfo);
            var QuestionBLL        = new T_QN_QuestionBLL(loggingSessionInfo);

            var tempList = QARMBLL.GetModelList(ActivityID, QuestionnaireID);

            var questionlist = QuestionBLL.getList(QuestionnaireID);

            TitleData = new TitleName[questionlist.Length + 2];
            for (int j = 0; j < questionlist.Length; j++)
            {
                DataColumn dc = new DataColumn(questionlist[j].Questionid.ToString());
                if (TitleData[j] == null)
                {
                    TitleData[j] = new TitleName();
                }
                TitleData[j].Name   = questionlist[j].Name;
                TitleData[j].NameID = questionlist[j].Questionid.ToString();
                dt.Columns.Add(dc);
            }

            if (TitleData[questionlist.Length] == null)
            {
                TitleData[questionlist.Length] = new TitleName();
            }
            TitleData[questionlist.Length].Name   = "提交时间";
            TitleData[questionlist.Length].NameID = "submitdate";
            DataColumn dcsubmitdate = new DataColumn("submitdate");

            dt.Columns.Add(dcsubmitdate);

            if (TitleData[questionlist.Length + 1] == null)
            {
                TitleData[questionlist.Length + 1] = new TitleName();
            }
            TitleData[questionlist.Length + 1].Name   = "标识";
            TitleData[questionlist.Length + 1].NameID = "ID";
            DataColumn dcID = new DataColumn("ID");

            dt.Columns.Add(dcID);

            var vipdata = QARMBLL.GetUserModelList(ActivityID, QuestionnaireID);



            for (int k = 0; k < vipdata.Length; k++)
            {
                DataRow dr       = dt.NewRow();
                var     _vipdata = vipdata[k];
                var     datetime = new DateTime();
                for (int j = 0; j < questionlist.Length; j++)
                {
                    var _questindata = questionlist[j];
                    for (int i = 0; i < tempList.Length; i++)
                    {
                        var _data = tempList[i];
                        if (_vipdata.ToString() == _data.VipID.ToString())
                        {
                            if (_questindata.Questionid.ToString() == _data.QuestionID)
                            {
                                dr[_questindata.Questionid.ToString()] = (_data.AnswerText + _data.AnswerOption + _data.AnswerDate + _data.AnswerProvince + _data.AnswerCity + _data.AnswerCounty + _data.AnswerAddress).TrimEnd(',');
                                datetime = _data.CreateTime.Value;
                            }
                        }
                    }
                }
                dr["submitdate"] = datetime;
                dr["ID"]         = _vipdata;
                dt.Rows.Add(dr);
            }

            return(dt);
        }