public List <Entity.Answer> GetAnswers(AnswerParameter p = null) { if (p == null) { p = new AnswerParameter(); } //User's answers. if (p.UserID.HasValue) { List <Entity.Answer> answers = null; if (_UserAnswers.ContainsKey(p.UserID.Value)) { answers = _UserAnswers[p.UserID.Value]; } else { answers = new List <Entity.Answer>(); //Add null answr for (int i = 0; i < NrOfQuestions; i++) { int qid = i + 1; answers.Add(new Entity.Answer() { QuestionId = qid, Value = null, UserId = p.UserID.Value }); } _UserAnswers.Add(p.UserID.Value, answers); } return(answers); } else { //return all answers of all users. return(_UserAnswers.SelectMany(i => i.Value).ToList()); } }
public void SyncAnswers(List <Entity.Answer> uiAnswers, int userID) { AnswerParameter p = new AnswerParameter(); p.UserID = userID; uiAnswers.ForEach(a => p.QuestionIDs.Add(a.QuestionId)); var dbAnswers = GetAnswers(p); foreach (Entity.Answer uiAnswer in uiAnswers) { var dbAnswer = dbAnswers.SingleOrDefault(a => a.QuestionId == uiAnswer.QuestionId); if (dbAnswer == null) { //new dbAnswer = new Entity.Answer() { InsertionDate = DateTime.Now }; dbAnswers.Add(dbAnswer); } SetAnswerEntity(uiAnswer, dbAnswer); //Sets changing values to inmemory storage. dbAnswer.UpdateDate = DateTime.Now; } }