public void InsertWorksheet(List <IQuestion> questions, string userEmailAddress) { if (!EmailAddress.IsEmailAddressValid(userEmailAddress)) { throw new ArgumentException("Invalid email address."); } if (!CheckIfUserIsInDatabase(userEmailAddress)) { InsertUser(userEmailAddress); context.SaveChanges(); } var currentUser = context.UserDbo.First(user => user.EmailAddress == userEmailAddress); var worksheet = new WorksheetDbo() { User = currentUser, DateSent = DateTimeOffset.Now }; context.WorksheetDbo.Add(worksheet); var questionDbos = questions.Select(question => InsertQuestion(question)) .ToList(); for (var i = 0; i < questionDbos.Count(); i++) { context.WorksheetQuestionDbo.Add(new WorksheetQuestionDbo(questionDbos[i], worksheet, i)); } context.SaveChanges(); }
private List <IQuestion> SelectWorksheetQuestions(WorksheetDbo worksheetDbo) { return(context.WorksheetQuestionDbo .Include(worksheetQuestion => worksheetQuestion.Question) .Include(worksheetQuestion => worksheetQuestion.Question.QuestionType) .Include(worksheetQuestion => worksheetQuestion.Worksheet.User) .Where(worksheetQuestion => worksheetQuestion.Worksheet.ID == worksheetDbo.ID) .ToList() .OrderBy(worksheetQuestion => worksheetQuestion.QuestionNumber) .Select(worksheetQuestion => FindQuestionCorrespondingToQuestionDbo(worksheetQuestion.Question)) .ToList()); }
public WorksheetQuestionDbo(QuestionDbo question, WorksheetDbo worksheet, int questionNumber) { Question = question; Worksheet = worksheet; QuestionNumber = questionNumber; }