public async Task StartExecutionLoopAsync()
 {
     while (true)
     {
         var item = _inputProvider.SelectOption(_settingMenu, e => e.Name);
         await item.Action();
     }
 }
        public string GetCurrentProblemKey()
        {
            var solvers    = _solverProvider.AvailableSolvers().ToList();
            var problemKey = _configurationProvider.Get(ConfigurationConstants.ProblemKeyKey);

            if (solvers.Contains(problemKey))
            {
                return(problemKey);
            }
            var key = _inputProvider.SelectOption(solvers);

            _inputProvider.RequestValueSaving(ConfigurationConstants.ProblemKeyKey, key, _configurationProvider);
            return(key);
        }