public void AddTest(TestInfo info, List <QuestionInfo> questions) { if (user == null) { throw userAccessException; } if (!TestValidator.IsValid(info) || !TestTitleIsAvailable(info.Title) || !TestValidator.IsValidQuestions(questions)) { throw wrongDataException; } Test test = new Test(info) { AddDate = DateTime.Now, UserId = user.Id }; test = db.Tests.Add(test); db.SaveChanges(); AddQuestions(test, questions); return; }
public bool EditTest(TestInfo info, List <QuestionInfo> questions) { if (user == null) { throw userAccessException; } if (!TestValidator.IsValid(info) || !TestTitleIsAvailable(info.Title, info.Id) || !TestValidator.IsValidQuestions(questions)) { throw wrongDataException; } Test test = db.Tests.FirstOrDefault(t => t.Id == info.Id); if (test == null) { return(false); } if (test.UserId != user.Id) { throw userAccessException; } RemoveQuestions(test); test.UserId = user.Id; test.Title = info.Title; test.Description = info.Description; test.Duration = info.Duration; test.Attempts = info.Attempts; test.Interval = info.Interval; test.AddDate = DateTime.Now; test.CategoryId = info.Category.Key; test.RatingSystemId = info.RatingSystem.Key; test.IsPrivate = info.IsPrivate; test.IsQuestionsMix = info.IsQuestionsMix; db.SaveChanges(); AddQuestions(test, questions); return(true); }