internal void Run()
        {
            using (var db = new EmployeesContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();
            }

            while (true)
            {
                var input = Console.ReadLine();

                var commandTokens = input.Split(' ');

                var commandName = commandTokens[0];

                var commandArgs = commandTokens.Skip(1).ToArray();

                var command = CommandParser.Parse(serviceProvider, commandName);

                var result = command.Execute(commandArgs);

                Console.WriteLine(result);
            }
        }
        internal void Run()
        {
            while (true)
            {
                try
                {
                    string   input         = Console.ReadLine();
                    string[] commandTokens = input.Split();

                    string commandName = commandTokens[0];

                    string[] commadArgs = commandTokens.Skip(1).ToArray();

                    var command = CommandParser.Parse(this.serviceProvider, commandName);

                    var result = command.Execute(commadArgs);

                    Console.WriteLine(result);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
        public void Run()
        {
            while (true)
            {
                var input       = Console.ReadLine();
                var args        = input.Split();
                var commandName = args[0];
                args = args.Skip(1).ToArray();

                var command = CommandParser.Parse(serviceProvider, commandName);
                var result  = command.Execute(args);
                Console.WriteLine(result);
            }
        }
        internal void Run()
        {
            while (true)
            {
                string input = Console.ReadLine();

                string[] commandTokens = input.Split(' ');
                string   commandName   = commandTokens[0];
                string[] commandArgs   = commandTokens.Skip(1).ToArray();

                var command = CommandParser.Parse(serviceProvider, commandName);

                var result = command.Execute(commandArgs);
                Console.WriteLine(result);
            }
        }
        internal void Run()
        {
            while (true)
            {
                this.writer.Write("Enter Command: ");
                string   input         = this.reader.ReadLine();
                string[] commandTokens = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                string   commandName = commandTokens[0];
                string[] commandArgs = commandTokens.Skip(1).ToArray();

                var command = CommandParser.Parse(this.serviceProvider, commandName);
                var result  = command.Execute(commandArgs);

                this.writer.WriteLine(result);
            }
        }
        internal void Run()
        {
            while (true)
            {
                try
                {
                    string   input         = Console.ReadLine().Trim();
                    string[] commandTokens = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    string   commandName   = commandTokens[0];
                    string[] commandArgs   = commandTokens.Skip(1).ToArray();

                    var command = CommandParser.Parse(serviceProvider, commandName);

                    var result = command.Execute(commandArgs);

                    Console.WriteLine(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
        internal void Run()
        {
            using (var context = new EmployeesContext())
            {
                //context.Database.Migrate();

                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                while (true)
                {
                    Console.Write("Enter command: ");

                    string input = Console.ReadLine();

                    string[] commandTokens = input.Split(' ');

                    string commandName = commandTokens[0];

                    string[] commandArgs = commandTokens.Skip(1).ToArray();

                    try
                    {
                        var command = CommandParser.Parse(serviceProvider, commandName);

                        var result = command.Execute(commandArgs);

                        Console.WriteLine(result);
                    }
                    catch (InvalidOperationException ex)
                    {
                        Console.WriteLine(ex.Message);
                        throw;
                    }
                }
            }
        }