Esempio n. 1
0
        private AbstractCommand GetCommand(string name)
        {
            var foundCommand = Commands.First(c => c !.GetName() == name);

            if (null == foundCommand)
            {
                throw CommandHandlerException.NotFound(name);
            }

            return(foundCommand);
        }
Esempio n. 2
0
        private void RegisterCommands()
        {
            var commandTypes = CliScope.DefinedTypes
                               .Where(t => t.IsSubclassOf(typeof(AbstractCommand)) && !t.IsAbstract);

            foreach (var type in commandTypes)
            {
                Services.AddTransient(type);
            }

            Commands = commandTypes
                       .Select(type => Services.BuildServiceProvider().GetService(type) as AbstractCommand)
                       .Where(c => null != c);

            var duplicates = FindDuplicates();

            if (0 != duplicates.Count())
            {
                throw CommandHandlerException.DuplicatedNames(duplicates.Select(c => c.GetName()));
            }
        }