コード例 #1
0
        public async Task <IActionResult> Result(int?id)
        {
            var user = await usersRepository.Get(id);

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }

            var allQUestions   = questionsRepository.GetAll();
            var allUserAnswers = userAnswersRepository.GetByUserId(id);

            if (allQUestions.Count == 0)
            {
                return(RedirectToAction("Index"));
            }

            if (allQUestions.Count != allUserAnswers.Count)
            {
                return(RedirectToAction("Quiz", new { id }));
            }

            var resultList = new List <Result>();

            for (int i = 0; i < allQUestions.Count; i++)
            {
                var optionList = optionsRepository.GetByQuestionId(allQUestions[i].QuestionId);
                resultList.Add(new Result
                {
                    QuestionText  = allQUestions[i].QuestionText,
                    CorrectOption = optionList[allQUestions[i].CorrectOption - 1].OptionText,
                    ChosenOption  = optionList[allUserAnswers[i].OptionChosen.Value - 1].OptionText,
                    IsCorrect     = allQUestions[i].CorrectOption == allUserAnswers[i].OptionChosen.Value,
                    Id            = i + 1
                });
            }

            var totalCorrect = 0;

            foreach (var result in resultList)
            {
                if (result.IsCorrect)
                {
                    totalCorrect++;
                }
            }

            var viewModel = new HomeResultViewModel
            {
                Results      = resultList,
                Email        = user.Email,
                TotalCorrect = totalCorrect
            };

            return(View(viewModel));
        }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: conorhar/ATMWebApp
        public IActionResult Result(int input)
        {
            var viewModel          = new HomeResultViewModel();
            var errorString        = "ERROR - ENTER AMOUNT ACCORDING TO REMAINING BILLS";
            var dispensedBillsList = new List <int>();

            if (_billService.CheckInputDividesBy100(input) == false)
            {
                viewModel.Header = errorString;
            }

            if (_billService.CheckEnoughBillsAreAvailable(input) == false)
            {
                viewModel.Header = errorString;
            }

            if (_billService.CheckRemainingBillsAddUp(input) == false)
            {
                viewModel.Header = errorString;
            }

            else
            {
                dispensedBillsList = _billService.GetSmallestAmountBills(input);
                var listBillObjects = _billService.ConvertToBills(dispensedBillsList);
                _billService.UpdateBillsInDB(dispensedBillsList);

                viewModel.Header             = "SUCCESS";
                viewModel.DispensedBillItems = listBillObjects.Select(r => new HomeResultViewModel.BillItem
                {
                    Value    = r.Value,
                    Quantity = r.Quantity
                }).ToList();
            }

            viewModel.RemainingBillItems = _dbContext.Bills.Select(r => new HomeResultViewModel.BillItem
            {
                Value    = r.Value,
                Quantity = r.Quantity
            }).ToList();

            return(View(viewModel));
        }