static void SaveUsedCode(UsedCode usedCode) { try { List <UsedCode> _usedCodesList = new List <UsedCode>(); var usedCodesList = JsonConvert.DeserializeObject <List <UsedCode> >((File.ReadAllText(UsedActionCodes))); if (usedCodesList == null) { _usedCodesList.Add(usedCode); } else { _usedCodesList = usedCodesList; _usedCodesList.Add(usedCode); } using (StreamWriter sw = new StreamWriter(UsedActionCodes, false, System.Text.Encoding.Default)) { var json = JsonConvert.SerializeObject(_usedCodesList); sw.Write(json); } } catch (Exception e) { Console.WriteLine(e.Message); } }
private static void RemoveAction(UsedCode usingCode) { try { var akcijosKodaiJson = JsonConvert.DeserializeObject <List <Akcija> >(File.ReadAllText(AkctionPath)); using StreamWriter sw = new StreamWriter(AkctionPath, false, System.Text.Encoding.Default); var akcija = akcijosKodaiJson.Where(x => x.ActionCode == usingCode.ActionCode).FirstOrDefault(c => c.CardNumber == usingCode.CardNumber); if (akcija != null) { akcijosKodaiJson.Remove(akcija); var json = JsonConvert.SerializeObject(akcijosKodaiJson.ToArray()); sw.Write(json); } } catch (Exception e) { Console.WriteLine(e.Message); } }
static void Main() { try { while (true) { TcpClient client = new TcpClient("127.0.0.1", 8000); Console.WriteLine("Client connected"); NetworkStream stream = client.GetStream(); Console.WriteLine("Ieskite pranesyma:Check - 0;UseCode - 1; ActionGenerate - 2;Stop Server - 3"); var pranesymas = Console.ReadKey(); Console.WriteLine(); StringBuilder requestdata = new StringBuilder(); switch (pranesymas.KeyChar) { case (char)48: Console.WriteLine("Iveskite Korteles numeri: "); requestdata.Append(Console.ReadLine()); break; case (char)49: Console.WriteLine("Iveskite Akcijos Koda"); var akcijosKodas = Console.ReadLine(); Console.WriteLine("Iveskite korteles numeri"); var cardNumber = Console.ReadLine(); UsedCode useCode = new UsedCode { ActionCode = akcijosKodas, CardNumber = cardNumber }; requestdata.Append(JsonConvert.SerializeObject(useCode)); break; case (char)50: requestdata.Append("GenerateAction"); break; case (char)51: requestdata.Append("ServerStop"); break; } var message = new Protocol(byte.Parse(pranesymas.KeyChar.ToString()), requestdata.ToString()); byte[] bytes = message.ToPacket(); stream.Write(bytes, 0, bytes.Length); stream.Flush(); byte[] byteRead = new byte[256]; int length = stream.Read(byteRead, 0, byteRead.Length); Protocol receivedProtocol = Protocol.Parse(byteRead); var data = receivedProtocol.GetData(); if (data == "Error" || data == "Kodai Irasyti" || data == "ServerStop") { Console.WriteLine("Pranesymas: " + data); } else { var result = JsonConvert.DeserializeObject <string>(data); Console.WriteLine(int.Parse(result)); } } } catch (Exception e) { Console.WriteLine(e.Message); } }
static void Main() { IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, port); TcpListener listener = new TcpListener(endPoint); listener.Start(); Console.WriteLine("Server started"); while (true) { try { TcpClient client = listener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); byte[] bytesRequest = new byte[256]; stream.Read(bytesRequest, 0, bytesRequest.Length); Protocol receivedProtocol = Protocol.Parse(bytesRequest); switch (receivedProtocol.GetPranesymas()) { case 48: var responseonCheck = ResponseOnCheckStatement(receivedProtocol.GetData()); Protocol protocolResponseCheck = new Protocol(receivedProtocol.GetPranesymas(), responseonCheck); byte[] onCheck = protocolResponseCheck.ToPacket(); stream.Write(onCheck, 0, onCheck.Length); stream.Flush(); break; case 49: UsedCode usingCode = JsonConvert.DeserializeObject <UsedCode>(receivedProtocol.GetData()); var responseUseCode = GetActionOnUseCodeStatement(usingCode.ActionCode, usingCode.CardNumber); Protocol protocolResponseUseCode = new Protocol(receivedProtocol.GetPranesymas(), responseUseCode); byte[] onUseCode = protocolResponseUseCode.ToPacket(); stream.Write(onUseCode, 0, onUseCode.Length); if (responseUseCode != "Error") { SaveUsedCode(usingCode); RemoveAction(usingCode); } stream.Flush(); break; case 50: GenerateCardNumbers(1000); var result = WriteAkcijosKodus(2000); Protocol protocolResponseActionGenerate = new Protocol(receivedProtocol.GetPranesymas(), result); byte[] onActionGenerate = protocolResponseActionGenerate.ToPacket(); stream.Write(onActionGenerate, 0, onActionGenerate.Length); stream.Flush(); break; case 51: ServerStop(); listener.Stop(); break; } client.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }