public double ReadDouble(Predicate <double> valueCorrectnessPredicate = null) { double result; _calcIO.Write("> "); string input; while (!double.TryParse(input = _calcIO.ReadString(), out result) || !(valueCorrectnessPredicate?.Invoke(result) ?? true)) { _calcIO.Write("Wrong input. Try again.\n> "); } return(result); }
public void Start() { calcIO.WriteLine( "Usage:\n" + " when first symbol on line is ‘>’ – enter operand(number)\n" + " when first symbol on line is ‘@’ – enter operation\n"); RunMathOperation(mathOperations['=']); bool running = true; while (running) { string input; do { calcIO.Write("@: "); input = calcIO.ReadString().Trim(); } while (input.Length > 1 || string.IsNullOrWhiteSpace(input)); if (mathOperations.TryGetValue(input[0], out var mathFunc)) { RunMathOperation(mathFunc); continue; } if (systemOperations.TryGetValue(input[0], out var sysFunc)) { running = sysFunc(); } } }
private static void Main(string[] args) { _programRunning = true; _clientCalcIO = new ConsoleCalcIO(); var ipPoint = new IPEndPoint(IPAddress.Parse(args[0]), int.Parse(args[1])); var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { socket.Connect(ipPoint); } catch (Exception e) { _clientCalcIO.WriteLine($"Can't connect to server {ipPoint}\nError: {e.Message}"); _clientCalcIO.ReadString(); return; } _networkCalcIO = new TCPCalcIO(socket, _clientCalcIO); _readMessagesThread = new Thread(new ThreadStart(ReadServerMessages)); _readMessagesThread.Start(); while (_programRunning) { string input = _clientCalcIO.ReadString().ToLower(); if (input == "q") { _programRunning = false; _networkCalcIO.Disconnect(); return; } if (_programRunning) { _networkCalcIO.Write(input); } } }
public string Read(ICalcIO calcIO) { Directory.CreateDirectory(FolderPath); var stringBuilder = new StringBuilder("List of existing files:\n"); foreach (string file in Directory.GetFiles(FolderPath, "*.txt")) { var str = file.Replace(FolderPath, ""); stringBuilder.Append(str.Substring(0, str.LastIndexOf(".txt"))); stringBuilder.Append("\n"); } calcIO.Write(stringBuilder.Append("Enter name of file:\n").ToString()); var name = calcIO.ReadString(); return(FolderPath + (string.IsNullOrWhiteSpace(name) ? "_" : name) + ".txt"); }
private static void Main(string[] args) { _programRunning = true; _consoleCalcIO = new ConsoleCalcIO(); _clientCalcIO = new List <TCPCalcIO>(); _clientThreads = new List <Thread>(); var ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse(args[0])); _listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _consoleCalcIO.WriteLine("Server started at port " + args[0]); _listenSocket.Bind(ipPoint); _listenSocket.Listen(10); _connectThread = new Thread(new ThreadStart(ConnectionsThread)); _connectThread.Start(); while (_programRunning) { _consoleCalcIO.ReadString(); } }