public int SaveTrainingScheduleAssignmentForUser(TrainingAssignmentAttemptViewModel model, int OrganizationId) { //Insert if (model.TrainingAssignmentAttemptId == 0) { var assignmentAttempt = Mapper.Map <TrainingAssignmentAttemptViewModel, TrainingAssignmentAttempt>(model); assignmentAttempt.OrganizationId = OrganizationId; base.RepositoryContext.TrainingAssignmentAttempts.Add(assignmentAttempt); base.RepositoryContext.TrainingAssignmentAnswers.AddRange(assignmentAttempt.TrainingAssignmentAnswers); return(base.RepositoryContext.SaveChanges()); } else { var assignmentAttempt = new TrainingAssignmentAttempt(); Mapper.Map(model, assignmentAttempt); var assignmentAnswers = assignmentAttempt.TrainingAssignmentAnswers; assignmentAttempt.TrainingAssignmentAnswers = null; base.RepositoryContext.Entry(assignmentAttempt).State = EntityState.Modified; foreach (var answer in assignmentAnswers) { base.RepositoryContext.Entry(answer).State = EntityState.Modified; } return(base.RepositoryContext.SaveChanges()); } }
public int SaveAssignmentScoreForUser(TrainingAssignmentAttemptViewModel model, int OrganizationId) { //var assignmentAttempt = base.RepositoryContext.TrainingAssignmentAttempts.Where(a => a.TrainingAssignmentAttemptId == model.TrainingAssignmentAttemptId).SingleOrDefault(); TrainingAssignmentAttempt assignmentAttempt = new TrainingAssignmentAttempt(); Mapper.Map(model, assignmentAttempt); assignmentAttempt.OrganizationId = OrganizationId; base.RepositoryContext.TrainingAssignmentAttempts.Attach(assignmentAttempt); base.RepositoryContext.Entry(assignmentAttempt).Property(a => a.Score).IsModified = true; base.RepositoryContext.Entry(assignmentAttempt).Property(a => a.Retest).IsModified = true; return(base.RepositoryContext.SaveChanges()); }
public TrainingAssignmentAttemptViewModel GetAssignmentForUser(int TrainingAssignmentAttemptId, int UserId, int OrganizationId) { TrainingAssignmentAttempt assignmentAttempt = base.RepositoryContext.TrainingAssignmentAttempts.Where(a => a.TrainingAssignmentAttemptId == TrainingAssignmentAttemptId && a.UserId == UserId && a.OrganizationId == OrganizationId) .Include(a => a.TrainingAssignmentAnswers).OrderBy(a => a.AttemptDate).FirstOrDefault(); List <AssignmentQuestion> questionList = base.RepositoryContext.AssignmentQuestions.Where(a => a.AssignmentID == assignmentAttempt.AssignmentId && a.Active == 1 && a.OrganizationId == OrganizationId).OrderBy(a => a.Order).Include(a => a.AssignmentQuestionOptions).ToList(); var viewModel = Mapper.Map <TrainingAssignmentAttempt, TrainingAssignmentAttemptViewModel>(assignmentAttempt); foreach (var qu in viewModel.TrainingAssignmentAnswers) { var question = questionList.Where(q => q.QuestionID == qu.QuestionId).SingleOrDefault(); qu.QuestionText = question.QuestionText; qu.QuestionType = question.QuestionType; qu.QuestionScore = question.Score; qu.AssignmentQuestionOptions = Mapper.Map <List <AssignmentQuestionOption>, List <AssignmentQuestionOptionViewModel> >(question.AssignmentQuestionOptions.ToList()); qu.IsCorrectAnswer = qu.QuestionType == 2 ? qu.AssignmentQuestionOptions.Where(aq => aq.QuestionOptionID == qu.QuestionOptionId).Select(aq => aq.IsCorrectAnswer).SingleOrDefault() : false; } return(viewModel); }
public TrainingAssignmentAttemptViewModel GetTrainingScheduleAssignmentForUser(int trainingScheduleId, int assignmentId, bool retest, bool isAssignmentRequired, int userId, int OrganizationId) { TrainingAssignmentAttempt assignmentAttempt = null; List <AssignmentQuestion> questionList = null; assignmentAttempt = base.RepositoryContext.TrainingAssignmentAttempts.Where(a => a.TrainingScheduleId == trainingScheduleId && a.AssignmentId == assignmentId && a.UserId == userId && a.OrganizationId == OrganizationId) .Include(a => a.TrainingAssignmentAnswers).OrderByDescending(a => a.AttemptDate).FirstOrDefault(); if (isAssignmentRequired) { questionList = base.RepositoryContext.AssignmentQuestions.Where(a => a.AssignmentID == assignmentId && a.Active == 1 && a.OrganizationId == OrganizationId).OrderBy(a => a.Order).Include(a => a.AssignmentQuestionOptions).ToList(); } if (assignmentAttempt == null || retest) { var viewModel = new TrainingAssignmentAttemptViewModel() { TrainingScheduleId = trainingScheduleId, AssignmentId = assignmentId, UserId = userId, TrainingAssignmentAnswers = !isAssignmentRequired ? null : Mapper.Map <List <AssignmentQuestion>, List <TrainingAssignmentAnswerViewModel> >(questionList) }; return(viewModel); } else { var viewModel = Mapper.Map <TrainingAssignmentAttempt, TrainingAssignmentAttemptViewModel>(assignmentAttempt); foreach (var qu in viewModel.TrainingAssignmentAnswers) { var question = questionList.Where(q => q.QuestionID == qu.QuestionId).SingleOrDefault(); qu.QuestionText = question.QuestionText; qu.QuestionType = Convert.ToInt32(question.QuestionType); qu.AssignmentQuestionOptions = Mapper.Map <List <AssignmentQuestionOption>, List <AssignmentQuestionOptionViewModel> >(question.AssignmentQuestionOptions.ToList()); } return(viewModel); } }