Пример #1
0
 public override bool Run(Session session, String command)
 {
     if (IsValidCommand(command))
     {
         return(Session.UpdateSession(ParsedParams.First(), ViewId));
     }
     return(false);
 }
Пример #2
0
        protected List <ParsedParams> TryParseParams(string parameters)
        {
            parameters = ParamNormRegex.Replace(parameters, string.Empty);
            parameters = parameters.Trim();
            if (string.IsNullOrEmpty(parameters))
            {
                return(new List <ParsedParams>());
            }

            var typeMatches = ParamTypeRegex.Matches(parameters);
            var nameMatches = ParamNameRegex.Matches(parameters);

            if (typeMatches.Count != nameMatches.Count)
            {
                throw new InvalidCastException();
            }

            var rez = new List <ParsedParams>();

            for (var i = 0; i < typeMatches.Count; i++)
            {
                var defaultValue = string.Empty;
                var name         = nameMatches[i].Value;
                var eqv          = name.IndexOf("=", StringComparison.Ordinal);
                if (eqv > -1)
                {
                    defaultValue = name.Substring(eqv + 1).Trim();
                    name         = name.Remove(eqv).Trim();
                }

                var param = new ParsedParams()
                {
                    CppName = name,
                    Name    = _cashParser.ToTitleCase(name, false),
                    Default = defaultValue,
                    CppType = typeMatches[i].Value,
                    Type    = GetKnownTypeOrDefault(typeMatches[i].Value)
                };
                rez.Add(param);
            }

            return(rez);
        }
Пример #3
0
        private ParsedParams TryParseParam(string parameters)
        {
            parameters = ParamNormRegex.Replace(parameters, string.Empty);
            parameters = parameters.Trim();
            if (string.IsNullOrEmpty(parameters))
            {
                return(new ParsedParams());
            }

            var typeMatche = ParamTypeRegex.Match(parameters);
            var nameMatche = ParamNameRegex.Match(parameters);

            if (!typeMatche.Success || !nameMatche.Success)
            {
                throw new InvalidCastException();
            }

            var defaultValue = string.Empty;
            var name         = nameMatche.Value;
            var eqv          = name.IndexOf("=", StringComparison.Ordinal);

            if (eqv > -1)
            {
                defaultValue = name.Substring(eqv + 1).Trim();
                name         = name.Remove(eqv).Trim();
            }

            var rez = new ParsedParams()
            {
                CppName = name,
                Name    = _cashParser.ToTitleCase(name, false),
                Default = defaultValue,
                CppType = typeMatche.Value,
                Type    = GetKnownTypeOrDefault(typeMatche.Value)
            };

            return(rez);
        }
Пример #4
0
        public void Run()
        {
            AddToLogger("Application run.");

            _table.ClearContent();
            _table.AddRange(GetSubDirectories(_config.Path));
            _table.AddRange(GetFiles(_config.Path));
            _table.SetPage(_config.Page);
            _appUi.Update();

            CommandParser comparser    = new CommandParser(_config);
            ParsedParams  parsedParams = new ParsedParams();

            while (true)
            {
                try
                {
                    parsedParams = comparser.Parse(Console.ReadLine());
                    _appUi.PrintInfo("");

                    switch (parsedParams.Command)
                    {
                    case Commands.CreateFile:
                        var fs = File.Create(parsedParams.InitPath);
                        fs.Close();
                        break;

                    case Commands.CreateDirectory:
                        Directory.CreateDirectory(parsedParams.InitPath);
                        break;

                    case Commands.RemoveFileOrDirectory:
                        RemoveFileOrDirectory(parsedParams.InitPath);
                        break;

                    case Commands.Cd:
                        GoToPath(AddSlash(parsedParams.DestPath), parsedParams.Page);
                        break;

                    case Commands.CopyFile:
                        File.Copy(parsedParams.InitPath, parsedParams.DestPath, true);
                        break;

                    case Commands.CopyDirectory:
                        CopyDirectory(parsedParams.InitPath, parsedParams.DestPath);
                        break;
                    }
                }
                catch (DirNotFoundException e)
                {
                    _appUi.PrintInfo(e.Message);
                    AddToLogger(e.Message);
                }
                catch (InvalidCmdParameterException e)
                {
                    _appUi.PrintInfo(e.Message);
                    AddToLogger(e.Message);
                }
                catch (WrongCmdException e)
                {
                    _appUi.PrintInfo(e.Message);
                    AddToLogger(e.Message);
                }
                catch (IOException e)
                {
                    _appUi.PrintInfo("Ошибка создания файла.");
                    AddToLogger(e.Message);
                }
                catch (Exception e)
                {
                    _appUi.PrintInfo("Неизвестная ошибка.");
                    AddToLogger(e.Message);
                }

                GoToPath(AddSlash(parsedParams.DestPath), parsedParams.Page);
                _appUi.Update();
                _appUi.FocusOnCommandLine();
                AddToLogger($"Path: {_table.Path} ");
                _config = SaveConfig(_config);
            }
        }