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); }
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); }
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)); }
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)); }