public override bool Run(Session session, String command) { if (IsValidCommand(command)) { return(Session.UpdateSession(ParsedParams.First(), ViewId)); } return(false); }
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); }
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); }
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); } }