Ejemplo n.º 1
0
        public bool SaveAssessmentResultAndAnsweredSheet(AssessmentResultEntity assessmentResultEntity)
        {
            try
            {
                AssessmentResultData assessmentResultData = new AssessmentResultData();
                assessmentResultData.UserId                    = assessmentResultEntity.UserId;
                assessmentResultData.AssessmentId              = assessmentResultEntity.AssessmentId;
                assessmentResultData.QuestionPaperId           = assessmentResultEntity.QuestionPaperId;
                assessmentResultData.CanInsertAssessmentResult = assessmentResultEntity.CanInsertAssessmentResult;
                assessmentResultData.IsWriteAssessmentLater    = assessmentResultEntity.IsWriteAssessmentLater;
                int rightAnsweredCount = 0;
                foreach (var answer in assessmentResultEntity.AnsweredSheet)
                {
                    if (answer.SelectedOptionId == answer.RightOptionId)
                    {
                        rightAnsweredCount = rightAnsweredCount + 1;
                    }
                }
                assessmentResultData.TotalQuestionsCount = assessmentResultEntity.AnsweredSheet.Count;
                assessmentResultData.RightAnsweredCount  = rightAnsweredCount;

                List <QuestionPaperData> listQuestionPaperData = new List <QuestionPaperData>();

                foreach (var questionEntity in assessmentResultEntity.AnsweredSheet)
                {
                    QuestionPaperData questionPaperData = new QuestionPaperData();
                    questionPaperData.ID               = questionEntity.ID;
                    questionPaperData.Number           = questionEntity.Number;
                    questionPaperData.OptionType       = questionEntity.OptionType;
                    questionPaperData.Options          = new List <OptionsData>();
                    questionPaperData.SelectedOptionId = questionEntity.SelectedOptionId;
                    questionPaperData.WrittenAnswer    = questionEntity.WrittenAnswer;

                    foreach (var optionEntity in questionEntity.Options)
                    {
                        OptionsData optionData = new OptionsData();
                        optionData.ID         = optionEntity.ID;
                        optionData.OptionText = optionEntity.OptionText;
                        questionPaperData.Options.Add(optionData);
                    }
                    questionPaperData.QuestionText  = questionEntity.QuestionText;
                    questionPaperData.RightOptionId = questionEntity.RightOptionId;
                    listQuestionPaperData.Add(questionPaperData);
                }
                assessmentResultData.AnsweredSheet = listQuestionPaperData;


                IQuestionPaperRepository questionPaperRepository = DataFactory.DataFactory.CreateQuestionPaperRepositoryInstance();
                return(questionPaperRepository.SaveAssessmentResultAndAnsweredSheet(assessmentResultData));
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public bool SaveAssessmentResultAndAnsweredSheet(AssessmentResultData assessmentResultData)
        {
            bool          isSaveSucess = true;
            StringBuilder strBuilder   = new StringBuilder();

            XmlSerializer serializer = new XmlSerializer(typeof(List <QuestionPaperData>));

            using (StringWriter textWriter = new StringWriter())
            {
                serializer.Serialize(textWriter, assessmentResultData.AnsweredSheet);
                strBuilder.Append(textWriter.ToString());
            }
            string answeredSheetINXML = Convert.ToString(strBuilder);

            try
            {
                IDatabaseHelper objSqlADOHelper = new SqlADOHelper();


                SqlParameter[] paramArray = new SqlParameter[9];

                paramArray[0] = RepositoryUtility.AddSQLParameter("@AssessmentId", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.AssessmentId);
                paramArray[1] = RepositoryUtility.AddSQLParameter("@userid ", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.UserId);
                paramArray[2] = RepositoryUtility.AddSQLParameter("@TotalQuestionsCount", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.TotalQuestionsCount);
                paramArray[3] = RepositoryUtility.AddSQLParameter("@RightAnsweredCount", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.RightAnsweredCount);
                paramArray[4] = RepositoryUtility.AddSQLParameter("@CanInsertAssessmentResult", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.CanInsertAssessmentResult?1:0);
                paramArray[5] = RepositoryUtility.AddSQLParameter("@questionPaperId", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.QuestionPaperId);
                paramArray[6] = RepositoryUtility.AddSQLParameter("@answeredSheet", SqlDbType.Xml, ParameterDirection.Input, answeredSheetINXML);
                paramArray[7] = RepositoryUtility.AddSQLParameter("@IsWriteLaterFlag", SqlDbType.Int, ParameterDirection.Input, assessmentResultData.IsWriteAssessmentLater?1:0);



                paramArray[8] = RepositoryUtility.AddSQLParameter("@responsemessage", SqlDbType.VarChar, ParameterDirection.Output, null, 500);

                objSqlADOHelper.GetOutputParamValue(paramArray, StoredProcedureNameConstants.SPSaveResultAndAnsweredSheet);
                string successMessage = Convert.ToString(paramArray[8].Value);
                if (successMessage.Equals("Success"))
                {
                    isSaveSucess = true;
                }
                else
                {
                    isSaveSucess = false;
                }
            }
            catch (Exception ex)
            {
                isSaveSucess = false;
            }
            return(isSaveSucess);
        }