public ThemeViewModel Get(int?id) { Theme theme = Database.Themes.Get(id.Value); ThemeViewModel themeDTO = MapperFromDB.Map <ThemeViewModel>(theme); return(themeDTO); }
public List <ResultFullViewModel> GetLastResults() { return(MapperFromDB.Map <IEnumerable <Result>, List <ResultFullViewModel> > (Database.Results.GetAll(). OrderByDescending(x => x.CreateDate). Take(5))); }
public OperationDetails TestPassing(QuestionViewModel question) { TimerModule currentTimer = (TimerModule)HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name]; TempResult tempResult = Database.TempResults.GetAll(). Where(x => x.UserName == HttpContext.Current.User.Identity.Name). SingleOrDefault(); bool isPass = PassedQuestion(question, ref tempResult); if (currentTimer.StopWatch.IsRunning && !String.IsNullOrWhiteSpace(tempResult.QuestionPassing)) { if (isPass) { QuestionViewModel nextQuestion = MapperFromDB.Map <Question, QuestionViewModel> (Database.Questions.Get(tempResult.QuestionPassing.StringStirrer().FirstOrDefault())); HttpContext.Current.Application["Test" + HttpContext.Current.User.Identity.Name] = nextQuestion.IdQuestion; return(new OperationDetails(true, nextQuestion)); } return(new OperationDetails(true, question)); } else { EndTestPassing(tempResult); return(new OperationDetails(false, null)); } }
public OperationDetails GetCurrentTestState(int IdQuestion) { TempResult tempResult = Database.TempResults. Find(x => x.UserName == HttpContext.Current.User.Identity.Name). SingleOrDefault(); int currentId = Int32.Parse( HttpContext.Current.Application["Test" + HttpContext.Current.User.Identity.Name].ToString()); TimerModule timer = (TimerModule) HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name]; if (tempResult != null) { if (String.IsNullOrWhiteSpace(tempResult.QuestionsPassed)) { QuestionViewModel question = MapperFromDB.Map <Question, QuestionViewModel> (Database.Questions.Get(currentId)); foreach (AnswerViewModel answer in question.Answers) { answer.Correct = false; } return(new OperationDetails(Math.Round(timer.CurrentInterval().TotalSeconds).ToString(), question)); } if (tempResult.QuestionPassing.StringStirrer(). Contains(currentId)) { QuestionViewModel question = MapperFromDB.Map <Question, QuestionViewModel> (Database.Questions.Get(currentId)); foreach (AnswerViewModel answer in question.Answers) { answer.Correct = false; } return(new OperationDetails(Math.Round(timer.CurrentInterval().TotalSeconds).ToString(), question)); } else { QuestionViewModel question = MapperFromDB.Map <Question, QuestionViewModel> (Database.Questions.Get(IdQuestion)); foreach (AnswerViewModel answer in question.Answers) { answer.Correct = false; } return(new OperationDetails( Math.Round(timer.CurrentInterval().TotalSeconds).ToString(), question)); } } else { return(new OperationDetails(false, "")); } }
public ResultFullViewModel GetResult(int?id) { try { return(MapperFromDB.Map <Result, ResultFullViewModel>(Database.Results.Get(id.Value))); } catch (Exception e) { return(null); } }
public QuestionViewModel GetQuestion(int?id) { Question question = Database.Questions.Get(id.Value); if (question != null) { return(MapperFromDB.Map <Question, QuestionViewModel>(Database.Questions.Get(id.Value))); } else { return(null); } }
public TestViewModel GetTest(int?id) { try { Test test = Database.Tests.Get(id.Value); TestViewModel testDTO = MapperFromDB.Map <TestViewModel>(test); return(testDTO); } catch (Exception e) { return(null); } }
public QuestionCreateViewModel GetCreationModel(int?id) { if (!id.HasValue) { QuestionCreateViewModel newQuestion = new QuestionCreateViewModel(); newQuestion.Theme = new SelectList(Database.Themes.GetAll(), "IdTheme", "ThemeName"); newQuestion.Answers = new List <AnswerViewModel>(); for (int i = 0; i < 5; i++) { newQuestion.Answers.Add(new AnswerViewModel()); } return(newQuestion); } else { if (Database.Questions.Get(id.Value) != null) { Question question = Database.Questions.Get(id.Value); QuestionCreateViewModel updateQuestion = new QuestionCreateViewModel { selectedDifficult = question.Difficult, QuestionText = question.QuestionText, Answers = MapperFromDB.Map <IEnumerable <Answer>, List <AnswerViewModel> >(question.Answers), IdQuestion = question.IdQuestion, ImageMimeType = question.ImageMimeType, QuestionImage = question.QuestionImage }; if (question.Theme == null) { updateQuestion.selectedTheme = "no theme"; } else { updateQuestion.selectedTheme = question.Theme.ThemeName; } updateQuestion.Theme = new SelectList(Database.Themes.GetAll(), "IdTheme", "ThemeName"); return(updateQuestion); } else { return(null); } } }
public IEnumerable <ThemeViewModel> GetAll() { return(MapperFromDB.Map <IEnumerable <Theme>, List <ThemeViewModel> >(Database.Themes.GetAll())); }
public TestGenerateViewModel GenerateTest(TestGenerateViewModel model) { if (model.Create) { Test generateTest = new Test { Difficult = model.selectedDifficult, IdTheme = Int32.Parse(model.selectedTheme), TestDescription = model.TestDescription, TestName = model.TestName, CreateDate = DateTime.Now, Time = new TimeSpan(0, model.selectedTime, 0), QuestionsNumber = model.selectedNumber, }; generateTest.Questions = new List <Question>(); foreach (QuestionViewModel question in model.Questions) { generateTest.Questions.Add((Database.Questions.Get(question.IdQuestion))); generateTest.TotalScore += Database.Questions.Get(question.IdQuestion).Score; } Database.Tests.Add(generateTest); Database.Complete(); return(null); } else { model.Questions.Clear(); Random randomGenerate = new Random(); var questionsId = Database.Questions.GetAll(). Where(x => x.Difficult == model.selectedDifficult && x.IdTheme == Int32.Parse(model.selectedTheme)). Select(x => x.IdQuestion). OrderBy(x => randomGenerate.Next()). Take((int)Math.Round(model.selectedNumber * 0.8)); List <int> questions_1 = questionsId.ToList(); var questionsIdAdding = Database.Questions.GetAll(). Where(x => x.Difficult != model.selectedDifficult || x.IdTheme != Int32.Parse(model.selectedTheme)). Select(x => x.IdQuestion). OrderBy(x => randomGenerate.Next()). Take(model.selectedNumber - questions_1.Count()); List <int> questions_2 = questionsIdAdding.ToList(); foreach (int id in questions_1.Concat(questions_2)) { model.Questions.Add(MapperFromDB.Map <QuestionViewModel>(Database.Questions.Get(id))); } model.Theme = new SelectList(Database.Themes.GetAll(), "IdTheme", "ThemeName"); return(model); } }