Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 public void Create(DalTest e)
 {
     Test test = new Test()
     {
         Id = e.Id,
         Name = e.Name,
         Questions = new List<Question>()
     };
     foreach (var question in e.Questions)
     {
         Question ormQuestion = context.Set<Question>().FirstOrDefault(m => m.Id == question.Id);
         test.Questions.Add(ormQuestion);
     }
     context.Set<Test>().Add(test);
     context.SaveChanges();
 }
Ejemplo n.º 3
0
 public void Delete(DalTest e)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 4
0
        public void Update(DalTest entity)
        {
            Test ormTest = entity.ToOrm();
            Test original = context.Set<Test>().Include(m => m.Questions).Single(m => m.Id == entity.Id);

            context.Entry(original).CurrentValues.SetValues(entity);

            foreach (Question dalQuestion in original.Questions.ToList())
            {
                if (ormTest.Questions.All(s => s.Id != dalQuestion.Id))
                    original.Questions.Remove(dalQuestion);
            }

            foreach (Question dalQuestion in ormTest.Questions.ToList())
            {
                var question = original.Questions.FirstOrDefault(s => s.Id == dalQuestion.Id);
                if (question == null)
                {
                    var newQuestion = context.Set<Question>().FirstOrDefault(m => m.Id == dalQuestion.Id);
                    original.Questions.Add(newQuestion);
                }
            }
            context.SaveChanges();
        }