public DealConnection(MemberIdentity ClientIdentity, IDeputy OnCompleteEvent = null, IDeputy OnEchoEvent = null)
        {         
            MemberIdentity ci = ClientIdentity;
            ci.Site = ServiceSite.Client;
            DealClient client = new DealClient(ci);
            Transfer = new DealTransfer(ci);

            connected = new DealEvent("Connected", this);
            headerSent = new DealEvent("HeaderSent", this);
            messageSent = new DealEvent("MessageSent", this);
            headerReceived = new DealEvent("HeaderReceived", this);
            messageReceived = new DealEvent("MessageReceived", this);

            client.Connected = connected;
            client.HeaderSent = headerSent;
            client.MessageSent = messageSent;
            client.HeaderReceived = headerReceived;
            client.MessageReceived = messageReceived;

            CompleteEvent = OnCompleteEvent;
            EchoEvent = OnEchoEvent;

            Client = client;

            WriteEcho("Client Connection Created");
        }
 public void Reconnect()
 {
     MemberIdentity ci = new MemberIdentity() { AuthId = Client.Identity.AuthId,
                                                Site = ServiceSite.Client,
                                                Name = Client.Identity.Name,
                                                Token = Client.Identity.Token,
                                                UserId = Client.Identity.UserId,
                                                DeptId = Client.Identity.DeptId,
                                                DataPlace = Client.Identity.DataPlace,
                                                  Id = Client.Identity.Id,
                                                  Ip = Client.EndPoint.Address.ToString(),
                                                Port = Client.EndPoint.Port,
                                                 Key = Client.Identity.Key };
     Transfer.Dispose();            
     DealClient client = new DealClient(ci);
     Transfer = new DealTransfer(ci);
     client.Connected = connected;
     client.HeaderSent = headerSent;
     client.MessageSent = messageSent;
     client.HeaderReceived = headerReceived;
     client.MessageReceived = messageReceived;
     Client = client;
 }