public QuestionPage(Personal personal, Survey survey) { InitializeComponent(); BindingContext = viewModel = new QuestionPageViewModel(Navigation); viewModel.SetSurvey(survey); viewModel.SetPersonal(personal); }
public QuestionPage() { this.InitializeComponent(); this.DataContext = questionPageViewModel = new QuestionPageViewModel(); ManipulationCompleted += The_ManipulationCompleted; ManipulationDelta += The_ManipulationDelta; }
private List <Question> NewQuestion(int id, QuestionPageViewModel userQuestionPage, Test test, UrlTest urlTest, UrlTestAttend urlAttendBase, List <Result> resultsBase) { userQuestionPage.TestName = test.Name; userQuestionPage.UrlTestName = urlTest.Name; userQuestionPage.UrlTestAttendId = urlAttendBase.Id; var questions = context.Questions.AsNoTracking().Where(a => a.TestId == test.Id & !a.IsDel) .OrderBy(a => a.Id) .ToList(); userQuestionPage.Answers = context.Answers.AsNoTracking().Where(a => a.QuestionId == id & !a.IsDel).ToList(); var answersPage = new List <Answer>(); foreach (var result in resultsBase) { var answer = context.Answers.FirstOrDefault(a => a.Id == result.AnswerId & a.QuestionId == id); if (answer != null) { answersPage.Add(answer); } } if (answersPage.Count != 0) { foreach (var answer in answersPage) { userQuestionPage.Answers.Find(a => a.Id == answer.Id).Selected = true; } } return(questions); }
public QuestionPage() { InitializeComponent(); _viewModel = new QuestionPageViewModel(); BindingContext = _viewModel; }
public async Task <IActionResult> Index(Guid id) { var questionResponse = await _queries.Request <GetQuestionRequest, GetQuestionResponse>(new GetQuestionRequest { Id = id }); var question = questionResponse.Question; if (question == null) { return(NotFound()); } var profileResponse = await _queries.Request <GetProfileRequest, GetProfileResponse>(new GetProfileRequest { Id = question.CreatedById }); var profile = profileResponse.Profile; var page = new QuestionPageViewModel { Question = new QuestionViewModel { Id = question.Id, Title = question.Title }, UserAsking = new UserViewModel { Id = profile.Id, Name = profile.Name, TotalGoldBadges = profile.Badges.Count(x => x.Badge.Rank == BadgeRank.Gold), TotalSilverBadges = profile.Badges.Count(x => x.Badge.Rank == BadgeRank.Silver), TotalBronzeBadges = profile.Badges.Count(x => x.Badge.Rank == BadgeRank.Bronze) } }; return(View(page)); }
public QuestionPageViewModelTests() { Question = new Question(); NetworkApi = new StubINetworkApi(); Application = new StubIApplicationViewModel(); Subject = new QuestionPageViewModel(Question.QuestionId, Application, NetworkApi); Application.CurrentSite_Get(() => "test_site"); }
public QuestionPage(QuestionPageViewModel questionPageViewModel) { InitializeComponent(); BindingContext = this._viewModel = questionPageViewModel; if (string.IsNullOrEmpty(questionPageViewModel.Question.ProTipText)) { ProTipButton.IsVisible = false; } }
private IActionResult QuestionView <TQuestion, TAnswer>(TAnswer answer) where TQuestion : IQuestionViewModel <TAnswer>, new() { var model = new QuestionPageViewModel <TAnswer> { Question = new TQuestion { Answer = answer } }; return(View(model)); }
public IActionResult Start(int id, QuestionPageViewModel userQuestionPage) { userQuestionPage.QuestionId = id; var urlTestBase = context.UrlTests.AsNoTracking().First(a => a.Url == userQuestionPage.Url); if (!string.IsNullOrEmpty(userQuestionPage.UrlTestName)) { if (urlTestBase.Name != userQuestionPage.UrlTestName) { urlTestBase.Name = userQuestionPage.UrlTestName; context.Update(urlTestBase); context.SaveChanges(); } } if (!ModelState.IsValid) { userQuestionPage.TestName = context.Tests.First(a => a.Id == urlTestBase.TestId & !a.IsDel).Name; return(View(userQuestionPage)); } if (string.IsNullOrEmpty(urlTestBase.Name)) { userQuestionPage.TestName = context.Tests.First(a => a.Id == urlTestBase.TestId & !a.IsDel).Name; userQuestionPage.Mes = "Write Name"; return(View(userQuestionPage)); } var urlAttends = context.UrlTestAttends.AsNoTracking().Where(a => a.UrlTestUrl == userQuestionPage.Url) .OrderByDescending(a => a.NumberOfRun).ToList(); var urlAttend = new UrlTestAttend() { UrlTestUrl = userQuestionPage.Url }; if (urlAttends.Count == 0) { urlAttend.NumberOfRun = 1; } else { urlAttend.NumberOfRun = urlAttends[0].NumberOfRun + 1; } urlAttend.StartTimeTest = DateTime.Now; context.UrlTestAttends.Add(urlAttend); context.SaveChanges(); var urlAttendBase = context.UrlTestAttends.AsNoTracking().First(a => a.UrlTestUrl == userQuestionPage.Url & a.NumberOfRun == urlAttend.NumberOfRun); return(RedirectToAction("QuestionPage", new{ testAttemptId = urlAttendBase.Id, id })); }
private QuestionPageViewModel CreateQuestionPage(UrlTest urlTest) { var questionPage = new QuestionPageViewModel(); var test = context.Tests.AsNoTracking().First(a => a.Id == urlTest.TestId & !a.IsDel); questionPage.TestName = test.Name; questionPage.UrlTestName = urlTest.Name; var questions = context.Questions.AsNoTracking().Where(a => a.TestId == test.Id & !a.IsDel).OrderBy(a => a.Id) .ToList(); if (questions.Count != 0) { questionPage.QuestionId = questions[0].Id; } return(questionPage); }
private void AddResult(QuestionPageViewModel userQuestionPage, List <Answer> answersUser, UrlTestAttend urlAttend, UrlTestAttend urlAttendBase) { foreach (var answer in userQuestionPage.Answers) { if (answersUser.Count == 0) { if (answer.Selected) { var result = new Result() { AnswerId = answer.Id, UrlTestAttendId = urlAttend.Id }; context.Results.Add(result); } } else { if (answersUser.FirstOrDefault(a => a.Id == answer.Id) == null) { if (answer.Selected) { var result = new Result() { AnswerId = answer.Id, UrlTestAttendId = urlAttend.Id }; context.Results.Add(result); } } else { if (!answer.Selected) { var resultBase = context.Results.AsNoTracking() .First(a => a.UrlTestAttendId == urlAttendBase.Id & a.AnswerId == answer.Id); context.Remove(resultBase); } } } } context.SaveChanges(); }
public IActionResult QuestionPage(int id) { var repository = new QuestionsRepository(_conn); var vm = new QuestionPageViewModel(); vm.Question = repository.GetQuestionById(id); vm.Tags = repository.GetTagsByQuestion(vm.Question.QuestionsTags); vm.Answers = repository.GetAnswersByQuestionId(id); vm.IsLoggedIn = User.Identity.IsAuthenticated; if (User.Identity.IsAuthenticated) { vm.User = repository.GetUserByEmail(User.Identity.Name); vm.DidntLikeYet = repository.DidntLikeYet(id, vm.User.Id); } return(View(vm)); }
public IActionResult QuestionPage(int testAttemptId, int id, QuestionPageViewModel userQuestionPage) { var urlAttend = context.UrlTestAttends.AsNoTracking().First(a => a.Id == testAttemptId); var urlTest = context.UrlTests.AsNoTracking().First(a => a.Url == urlAttend.UrlTestUrl); var test = context.Tests.AsNoTracking().First(a => a.Id == urlTest.TestId); var urlAttendBase = context.UrlTestAttends.AsNoTracking().First(a => a.UrlTestUrl == urlTest.Url & a.NumberOfRun == urlAttend.NumberOfRun); var resultsBase = context.Results.AsNoTracking() .Where(a => a.UrlTestAttendId == urlAttendBase.Id).ToList(); if (userQuestionPage.Answers != null) { var answersUser = AnswersUser(userQuestionPage.QuestionId, resultsBase); AddResult(userQuestionPage, answersUser, urlAttend, urlAttendBase); } var dateNow = DateTime.Now; var data = test.TestTime; urlAttend.TestTime = dateNow.Subtract(urlAttendBase.StartTimeTest); if (id == -2 | (TimeSpan.Compare(urlAttend.TestTime, data) == 1)) { if (string.IsNullOrEmpty(urlTest.Name)) { userQuestionPage.Question = NewQuestion(userQuestionPage.Question.Id, userQuestionPage, test, urlTest, urlAttendBase, resultsBase).Find(a => a.Id == userQuestionPage.Question.Id); userQuestionPage.QuestionId = userQuestionPage.Question.Id; userQuestionPage.Mes = "Not write Username!"; return(View(userQuestionPage)); } urlAttend.IsEnd = true; context.Update(urlAttend); context.SaveChanges(); return(RedirectToAction("CheckTest", "Result")); } var questions = NewQuestion(id, userQuestionPage, test, urlTest, urlAttendBase, resultsBase); FillNextPrev(id, userQuestionPage, questions); userQuestionPage.QuestionId = userQuestionPage.Question.Id; return(RedirectToAction("QuestionPage", "UserTest")); }
public IActionResult QuestionPage(int testAttemptId, int id) { var questionPage = new QuestionPageViewModel(); var urlAttend = context.UrlTestAttends.AsNoTracking().First(a => a.Id == testAttemptId); if (urlAttend.IsEnd) { return(RedirectToAction("CheckTest", "Result")); } var urlTest = context.UrlTests.AsNoTracking().First(a => a.Url == urlAttend.UrlTestUrl); var test = context.Tests.AsNoTracking().First(a => a.Id == urlTest.TestId); var urlAttendBase = context.UrlTestAttends.AsNoTracking().First(a => a.UrlTestUrl == urlTest.Url & a.NumberOfRun == urlAttend.NumberOfRun); questionPage.Answers = context.Answers.AsNoTracking().Where(a => a.QuestionId == id).ToList(); var resultsBase = context.Results.AsNoTracking() .Where(a => a.UrlTestAttendId == testAttemptId).ToList(); if (questionPage.Answers != null) { var answersUser = AnswersUser(id, resultsBase); if (answersUser.Count != 0) { foreach (var answer in answersUser) { for (var i = 0; i < questionPage.Answers.Count; i++) { if (answer.Id == questionPage.Answers[i].Id) { questionPage.Answers[i].Selected = true; } } } } } var questions = NewQuestion(id, questionPage, test, urlTest, urlAttendBase, resultsBase); FillNextPrev(id, questionPage, questions); questionPage.QuestionId = questionPage.Question.Id; return(View(questionPage)); }
private static void FillNextPrev(int id, QuestionPageViewModel userQuestionPage, List <Question> questions) { var i = questions.FindIndex(q => q.Id == id); userQuestionPage.Question = questions[i]; if (i != 0) { userQuestionPage.PrevId = questions[i - 1].Id; } else { userQuestionPage.PrevId = null; } if (questions.Count - 1 == i) { userQuestionPage.NextId = null; } else { userQuestionPage.NextId = questions[i + 1].Id; } }
public QuestionPage() { InitializeComponent(); BindingContext = new QuestionPageViewModel(Navigation); NavigationPage.SetHasNavigationBar(this, false); }
public QuestionPage(QuestionPageViewModel viewModel) { BindingContext = viewModel; InitializeComponent(); }
public QuestionPage(QuestionPageViewModel qpvm) { InitializeComponent(); this.BindingContext = qpvm; }