Пример #1
0
        public ActionResult Index()
        {
            var enumService = new EnumService();

            var model = new HanoiViewModel();

            model.HanoiAlgorithms  = enumService.GetHanoiAlgorithmTypes();
            model.SelectedPosition = model.HanoiAlgorithms.First().Text;

            return(View(model));
        }
Пример #2
0
        public ActionResult Result(HanoiViewModel model)
        {
            if (!ModelState.IsValid ||
                model.TowerNumber < 0 ||
                model.DiscNumber < 0 ||
                model.SelectedTower < 0 ||
                model.SelectedTower > model.TowerNumber)
            {
                throw new Exception();
            }

            var type = (HanoiAlgorithm)Enum.Parse(
                typeof(HanoiAlgorithm),
                model.SelectedPosition);

            var algorithm = HanoiFactory.Get(
                type,
                model.TowerNumber,
                model.DiscNumber);

            var expectedResult = HanoiHelper.ResultGenerator(
                model.TowerNumber,
                model.DiscNumber,
                model.SelectedTower);

            algorithm.Execute(expectedResult);

            var result = new HanoiResultViewModel()
            {
                DiscNumber       = model.DiscNumber,
                TowerNumber      = model.TowerNumber,
                SelectedPosition = expectedResult,
                Result           = algorithm.GetResult()
            };

            return(View(result));
        }