コード例 #1
0
      public Result UpdateAnswer(int userId, NurseSelfAssessmentAnswersEntity answer)

      /*
       * Update one Answer entry
       * Currently a wrapper of insert Answer as they can do both at once.
       */
      {
          Result result = new Result();

          //TODO:

          try
          {
              result = InsertAnswer(userId, answer);
              return(result);
          }
          catch (Exception ex)
          {
              Logger.Log(ex);
              result.Success = false;
              result.Message = ex.Message;
          }

          return(result);
      }
コード例 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("//Reconstructing database //");
            FrameworkManager FM   = new FrameworkManager();
            AspectsManager   AM   = new AspectsManager();
            AnswersManager   ASWM = new AnswersManager();
            QuestionsManager QM   = new QuestionsManager();


            NurseSelfAssessmentAnswersManager NSAM = new NurseSelfAssessmentAnswersManager();

            //Get Aspects
            var aspect_Resul = AM.Get();
            var aspects_List = (List <AspectEntity>)aspect_Resul.Entity;
            var aspects_Dict = aspects_List.ToDictionary(x => x.AspectId, x => x);


            //Get User Quizz Answers

            var NSAM_Resul = NSAM.GetAllQuizz_OldDB();
            var answ_List  = (List <UsersQuizzesEntity>)NSAM_Resul.Entity;

            //Get Answers
            var answers_result = ASWM.Get();
            var answers_List   = (List <AnswerEntity>)answers_result.Entity;
            var answers_Dict   = answers_List.ToDictionary(x => (x.QuestionId, x.Value), x => x);

            //Get Questions
            var questions_result = QM.Get();
            var questions_List   = (List <QuestionEntity>)questions_result.Entity;
            var question_Dict    = questions_List.ToDictionary(x => x.QuestionId, x => x);



            List <Object> results       = new List <Object>();
            int           error_counter = 0;

            //Parse data
            foreach (UsersQuizzesEntity entity in answ_List)
            {
                //Console.WriteLine(entity.Results);
                JObject parent_json = JObject.Parse(entity.Results);
                var     answer      = parent_json.Value <JObject>("answers").Properties();

                var result = new Result();

                if (answer != null)
                {
                    var nurse_answer_dict = answer.ToDictionary(k => Int32.Parse(k.Name), v => Decimal.Parse(v.Value.ToString()));

                    foreach (KeyValuePair <int, decimal> ans in nurse_answer_dict)
                    {
                        NurseSelfAssessmentAnswersEntity ans_entity = new NurseSelfAssessmentAnswersEntity();
                        ans_entity.QuestionId = ans.Key;
                        ans_entity.Value      = ans.Value;
                        ans_entity.LastUpdate = entity.DateVal;
                        ans_entity.UserId     = entity.UserId;
                        ans_entity.UserQuizId = entity.UserQuizId;

                        AnswerEntity answer_entity = null;
                        if (answers_Dict.TryGetValue((ans_entity.QuestionId, ans_entity.Value), out answer_entity))
                        {
                            ans_entity.AnswerId = answer_entity.AnswerId;
                        }

                        QuestionEntity question_entity = null;
                        if (question_Dict.TryGetValue(ans.Key, out question_entity))
                        {
                            ans_entity.AspectId = (int)question_entity.AspectId;
                        }
                        // insert answer into database
                        result = NSAM.InsertAnswer(entity.UserId, ans_entity);

                        if (!result.Success)
                        {
                            Console.WriteLine(result.Message);
                            error_counter++;
                        }
                    }
                }


                if (!result.Success)
                {
                    Console.WriteLine(result.Message);
                    error_counter++;
                }
            }


            Console.WriteLine(String.Format("process completed with {0} error", error_counter));


            System.Threading.Thread.Sleep(5000);
        }
コード例 #3
0
      public Result InsertAnswer(int userId, NurseSelfAssessmentAnswersEntity answer)

      /*
       * Insert one answer (one aspect) into the database
       *
       */

      {
          Result result = new Result();

          //TODO:
          try
          {
              var con   = new DapperConnectionManager();
              var query = new QueryEntity();
              if (answer == null)
              {
                  result         = null;
                  result.Success = false;
                  result.Message = "Login error";
                  return(result);
              }
              query.Entity = answer;

              /* query.Entity = new { UserId = userId,
               *   AspectId = answer.AspectId,
               *  // AnswerId = answer.AnswerId,
               *   Value = answer.Value
               *
               * };*/

              // check if there is any records exist if yes, update, else, insert

              String query_string = String.Format(@"
                BEGIN TRAN
                IF EXISTS (SELECT * FROM NurseSelfAssessmentAnswers WHERE UserId = {0} and QuestionId = @QuestionId and UserQuizId = @UserQuizId)
                BEGIN
                    UPDATE NurseSelfAssessmentAnswers SET Value = @Value 
                                                        , LastUpdate= @LastUpdate 
                                                        , QuestionId = @QuestionId 
                                                        , AnswerId = @AnswerId
                                                        , AspectId = @AspectId
                                                        , TextAnswerField = @TextAnswerField
                    WHERE UserId = {0} and QuestionId = @QuestionId and UserQuizId = @UserQuizId
                END 
                ELSE
                BEGIN 
                INSERT INTO NurseSelfAssessmentAnswers (UserId 
                                                        ,AspectId
                                                        ,Value 
                                                        ,QuestionId
                                                        ,AnswerId
                                                        ,TextAnswerField
                                                        ,LastUpdate
                                                        ,UserQuizId)
                                                    VALUES({0}
                                                            , @AspectId
                                                            , @Value 
                                                            , @QuestionId
                                                            ,@AnswerId
                                                            ,@TextAnswerField
                                                            ,@LastUpdate
                                                            ,@UserQuizId)
                END
                COMMIT TRAN

", userId);
              query.Query = query_string;
              result      = con.ExecuteQuery <UsersQuizzesEntity>(query);

              return(result);
          }
          catch (Exception ex)
          {
              Logger.Log(ex);
          }
          return(new Result(false));
      }
コード例 #4
0
        public HttpResponseMessage SaveAssessmentQuiz([FromBody] UsersQuizzesEntity entity)
        {
            object objuser = null;

            Request.Properties.TryGetValue("user", out objuser);
            var user = objuser as UserEntity;

            entity.UserId = user.UserId;
            entity.Type   = QuizTypes.ASSESSMENT.ToString();
            var result = _usersManager.SaveQuiz(entity);

            var error_counter = 0;

            if (!result.Success)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new Result(false)));
            }
            if (result.Success)
            {
                var userQuizid = (int)result.Entity;
                //Console.WriteLine(entity.Results);
                JObject parent_json = JObject.Parse(entity.Results);
                var     answer      = parent_json.Value <JObject>("answers").Properties();

                var temp_result = new Result();

                if (answer != null)
                {
                    var nurse_answer_dict = answer.ToDictionary(k => Int32.Parse(k.Name), v => Decimal.Parse(v.Value.ToString()));

                    foreach (KeyValuePair <int, decimal> ans in nurse_answer_dict)
                    {
                        NurseSelfAssessmentAnswersEntity ans_entity = new NurseSelfAssessmentAnswersEntity();
                        ans_entity.QuestionId = ans.Key;
                        ans_entity.Value      = ans.Value;
                        ans_entity.LastUpdate = entity.DateVal;
                        ans_entity.UserId     = entity.UserId;
                        ans_entity.UserQuizId = userQuizid;

                        AnswerEntity answer_entity = null;
                        if (answerDictionary.TryGetValue(new Tuple <int, decimal>(ans_entity.QuestionId, ans_entity.Value), out answer_entity))
                        {
                            ans_entity.AnswerId = answer_entity.AnswerId;
                        }

                        QuestionEntity question_entity = null;
                        if (questionDictionary.TryGetValue(ans.Key, out question_entity))
                        {
                            ans_entity.AspectId = (int)question_entity.AspectId;
                        }
                        // insert answer into database
                        temp_result = _nurseSelfAssessmentAnswersManager.InsertAnswer(entity.UserId, ans_entity);

                        if (!temp_result.Success)
                        {
                            error_counter++;
                        }
                    }
                }
            }

            result.Message += String.Format(". Process ended with {0} error ", error_counter);

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }