public DalTest GetById(int key) { Test test = context.Set<Test>().FirstOrDefault(t => t.Id == key); DalTest dalTest = new DalTest() { Id = test.Id, Name = test.Name, Questions = new List<DalQuestion>() }; foreach (var question in test.Questions) { DalQuestion dalQuestion = new DalQuestion() { Id = question.Id, Text = question.Text, Options = new List<DalOption>() }; foreach (var option in question.Options) { DalOption dalOption = new DalOption() { Id = option.Id, IsAnswer = option.IsAnswer, QuestionId = option.QuestionId, Text = option.Text }; dalQuestion.Options.Add(dalOption); } dalTest.Questions.Add(dalQuestion); } return dalTest; }
public IEnumerable<DalQuestion> GetAll() { List<Question> questions = context.Set<Question>().ToList(); List<DalQuestion> dalQuestions = new List<DalQuestion>(); foreach (var question in questions) { DalQuestion dalQuestion = new DalQuestion() { Id = question.Id, Text = question.Text, Options = new List<DalOption>() }; foreach (var option in question.Options) { DalOption dalOption = new DalOption() { Id = option.Id, IsAnswer = option.IsAnswer, QuestionId = option.QuestionId, Text = option.Text }; dalQuestion.Options.Add(dalOption); } dalQuestions.Add(dalQuestion); } return dalQuestions; }
public void Create(DalQuestion e) { Question question = new Question() { Text = e.Text, Options = new List<Option>() }; foreach (DalOption dalOption in e.Options) { Option option = new Option() { Question = question, IsAnswer = dalOption.IsAnswer, Text = dalOption.Text }; question.Options.Add(option); } context.Set<Question>().Add(question); context.SaveChanges(); }
public void Delete(DalQuestion e) { throw new NotImplementedException(); }
public void Update(DalQuestion entity) { Question original = context.Set<Question>() .Include(x => x.Options) .Single(c => c.Id == entity.Id); context.Entry(original).CurrentValues.SetValues(entity); foreach (var dalOption in original.Options.ToList()) { if (entity.Options.All(s => s.Id != dalOption.Id)) context.Set<Option>().Remove(dalOption); } foreach (Option dalOption in entity.ToOrm().Options) { var option = original.Options.SingleOrDefault(s => s.Id == dalOption.Id); if (option != null) { context.Entry(option).CurrentValues.SetValues(dalOption); } else { original.Options.Add(dalOption); } } context.SaveChanges(); }