//TODO Rewrite with networkStream. Read - Act - Write.
        public void Listen()
        {
            string msg= "";
            IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050);
            Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            newsock.Bind(ipEndPoint);
            newsock.Listen(10);
            Socket client = newsock.Accept();
            //IPEndPoint clientep = (IPEndPoint) client.RemoteEndPoint;

            NetworkStream stream = new NetworkStream(client);
            using (StreamReader streamReader = new StreamReader(stream))
            {
                while (streamReader.Peek() >= 0)
                {
                    msg = string.Concat(msg, streamReader.Read());
                }
            }

            ServerParser serverParser = new ServerParser();
            string res = serverParser.Decode(msg);

            using (StreamWriter streamWriter = new StreamWriter(stream))
            {
                streamWriter.WriteLine(res);
            }

            //http://www.java2s.com/Code/CSharp/Network/TcpClientSample.htm //TODO Remove links
            //http://www.java2s.com/Code/CSharp/Network/SimpleTcpServer.htm
        }
        public void Listen()
        {
            string msg= "";
            IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050);
            Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            newsock.Bind(ipEndPoint);
            newsock.Listen(10);
            Socket client = newsock.Accept();

            using (NetworkStream stream = new NetworkStream(client))
            {
                StreamReader streamReader = new StreamReader(stream);
                msg = streamReader.ReadLine();
                ServerParser serverParser = new ServerParser();
                string res = serverParser.Decode(msg);
                using (StreamWriter streamWriter = new StreamWriter(stream))
                {
                    streamWriter.WriteLine(res);
                }
                stream.Dispose();
            }
            newsock.Close();
        }
 public void Should_ReturnUnknownOperation_WhenInputIsDelete()
 {
     ServerParser serverParser = new ServerParser();
     Assert.AreEqual(serverParser.Decode("Delete"), "Unknown operation");
 }
 public void Should_Return32_WhenStringContents32After2ndSplitter()
 {
     ServerParser serverParser = new ServerParser();
     Assert.AreEqual(serverParser.DecodeID("#03#32"), 32);
 }
 public void Should_CityNameBeDonetsk_WhenStringContentsItAfter2ndSplitter()
 {
     ServerParser serverParser = new ServerParser();
     Assert.AreEqual(serverParser.DecodeCity("#02#0#Donetsk#Don#UA#False").Name, "Donetsk");
 }
 public void ShouldNot_ThrowException_WhenInputIsEmpty()
 {
     ServerParser serverParser = new ServerParser();
     Assert.AreEqual(serverParser.Decode(""), "Unknown operation");
 }
 public void Shoud_AttribBeFalse_WhenStringContentsFalseAfter6thSplitter()
 {
     ServerParser serverParser = new ServerParser();
     Assert.AreEqual(serverParser.DecodeCity("#02#0#Donetsk#Don#UA#False").Attrib, false);
 }