예제 #1
0
        private void GetResults()
        {
            Logger.Instance.Log(Logger.Type.Ok, "Client - GetResults: waiting for results");
            Console.Write("Waiting for results....");
            while (true) //synchronization for clients
            {
                var status = _client.Receive(Packet.Owner.Client, 11);
                if (JsonSerializer.Deserialize <Status>(status) == Status.Ok)
                {
                    break;
                }
            }

            _client.SendObject(Status.Ok, Packet.Owner.Client, 3);
            var data = _client.Receive(Packet.Owner.Client, 12); //id12 contains the result

            Logger.Instance.Log(Logger.Type.Ok, "Client - GetResults: received results");

            var resultSecond = data;
            var result       = JsonSerializer.Deserialize <Result>(resultSecond);

            var message = $"There was {result.ErrorCount} error(s). \n {result.ErrorMessage}";

            Logger.Instance.Log(Logger.Type.Warning, message);
            Console.Write(message);
            NetworkTcp.Disconnect(_client);
            _client.Close();
            Logger.Instance.CheckOut();
        }
예제 #2
0
        private void SendResults(int errors, string result)
        {
            Logger.Instance.Log(Logger.Type.Ok, "Server - SendResults: sending results");
            // errors and result are sent via json using a parameterless constructor class (see documentation on JsonSerializer.Deserialize)
            var resultF = new Result {
                ErrorCount = errors, ErrorMessage = result
            };

            _client.SendObject(resultF, Packet.Owner.Server, 12);

            //POST PROCESS | Make sure that client receives the packet
            Console.ReadKey();
            Logger.Instance.Log(Logger.Type.Ok, "Server - SendResults: finished job");
            // Disconnect all clients
            NetworkTcp.Disconnect(_client);
            _client.Close();
        }
 /// <summary>
 /// Disconnects this instance.
 /// </summary>
 public override void Disconnect()
 {
     NetworkTcp.Disconnect(this.Device.Token.AsyncEvent);
 }