public bool RegisterNode(ServerAddress selfAddress) { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); AckMessage response = new AckMessage(); try { CLI.DisplayLine("Attempting connection"); response = client.RegisterNode(new ServerAddressMessage { Ip = selfAddress.Ip , Port = selfAddress.Port }); } catch (RpcException) { CLI.DisplayLine("Connection failed"); return(false); } channel.ShutdownAsync().Wait(); return(response.Status == AckMessage.Types.Status.Ok); }
public List <ServerAddress> RequestNodes() { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var response = client.RequestNodes( new ServerAddressMessage() { Ip = ServerAddress.EmptyAddress.Ip , Port = ServerAddress.EmptyAddress.Port } ); channel.ShutdownAsync(); List <ServerAddress> ret = new List <ServerAddress>(); foreach (var n in response.AddressList) { ret.Add(new ServerAddress() { Ip = n.Ip , Port = n.Port }); } return(ret); }
public AckMessage PingNode() { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var response = client.Ping(new PingRequest()); channel.ShutdownAsync().Wait(); return(response); }
public Chain RequestFullChain() { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var response = client.RequestFullChain(new ServerAddressMessage { Ip = serverAddress.Ip , Port = serverAddress.Port }); channel.ShutdownAsync().Wait(); return(new Chain(response.Xml)); }
public AckMessage SendChain(Chain chain) { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var response = client.ReceiveChain(new ChainMessage { SenderAddress = new ServerAddressMessage() { Ip = selfAddress.Ip , Port = selfAddress.Port } , Xml = chain.AsXML() }); return(response); }
public AckMessage SendTransaction(ITransaction transaction) { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var senderAddress = new ServerAddressMessage() { Ip = ServerAddress.EmptyAddress.Ip , Port = ServerAddress.EmptyAddress.Port }; var response = client.ReceiveTransaction(new TransactionMessage() { SenderAddress = senderAddress , Xml = new TransactionWrapper(transaction).AsXML() });; channel.ShutdownAsync().Wait(); return(response); }
public Chain RequestDeltaChain(long currentIndex) { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var response = client.RequestDeltaChain(new DeltaRequest { SenderAddress = new ServerAddressMessage() { Ip = selfAddress.Ip , Port = selfAddress.Port } , CurrentIndex = currentIndex }); channel.ShutdownAsync().Wait(); return(new Chain(response.Xml)); }
public List <Physician> RequestPhysicians() { var channel = OpenConnection(); var client = new PublisherServer.PublisherServerClient(channel); var response = client.RequestPendingPhysicians(new ServerAddressMessage() { Ip = ServerAddress.EmptyAddress.Ip , Port = ServerAddress.EmptyAddress.Port }); List <Physician> ret = new List <Physician>(); foreach (var p in response.PhysicianList) { XmlSerializer serializer = new XmlSerializer(typeof(Physician), new Type[] { typeof(ITransaction) }); Physician physician = (Physician)serializer.Deserialize(new StringReader(p.Xml)); ret.Add(physician); } return(ret); }