private async Task AddSelfToNetwork(List <string> xServerUrls, CancellationToken cancellationToken) { var selfNode = networkFeatures.GetSelfServerNode(); if (selfNode.Active) { ServerRegisterRequest registerRequest = new ServerRegisterRequest() { ProfileName = selfNode.ProfileName, NetworkProtocol = selfNode.NetworkProtocol, NetworkAddress = selfNode.NetworkAddress, NetworkPort = selfNode.NetworkPort, Signature = selfNode.Signature, Tier = selfNode.Tier }; foreach (string xServerURL in xServerUrls) { var client = new RestClient(xServerURL); var registerRestRequest = new RestRequest("/register", Method.POST); var request = JsonConvert.SerializeObject(registerRequest); registerRestRequest.AddParameter("application/json; charset=utf-8", request, ParameterType.RequestBody); registerRestRequest.RequestFormat = DataFormat.Json; await client.ExecuteAsync(registerRestRequest, cancellationToken); } } }
public async Task RelayXServerAsync(ServerNodeData newServer, List <ServerNodeData> activeXServers, CancellationToken cancellationToken) { ServerRegisterRequest registerRequest = new ServerRegisterRequest() { ProfileName = newServer.ProfileName, NetworkAddress = newServer.NetworkAddress, NetworkPort = newServer.NetworkPort, NetworkProtocol = newServer.NetworkProtocol, Signature = newServer.Signature, Tier = newServer.Tier, FeeAddress = newServer.FeeAddress, KeyAddress = newServer.KeyAddress, SignAddress = newServer.SignAddress }; foreach (var activeServer in activeXServers) { string xServerURL = networkFeatures.GetServerUrl(activeServer.NetworkProtocol, activeServer.NetworkAddress, activeServer.NetworkPort); var client = new RestClient(xServerURL); var registerRestRequest = new RestRequest("/registerserver", Method.POST); var request = JsonConvert.SerializeObject(registerRequest); registerRestRequest.AddParameter("application/json; charset=utf-8", request, ParameterType.RequestBody); registerRestRequest.RequestFormat = DataFormat.Json; var result = await client.ExecuteAsync(registerRestRequest, cancellationToken); } }
public async Task <IActionResult> RegisterServerAsync([FromBody] ServerRegisterRequest registerRequest) { xServer.Stats.IncrementPublicRequest(); ServerNodeData serverNode = new ServerNodeData() { ProfileName = registerRequest.ProfileName, NetworkAddress = registerRequest.NetworkAddress, NetworkPort = registerRequest.NetworkPort, KeyAddress = registerRequest.KeyAddress, SignAddress = registerRequest.SignAddress, FeeAddress = registerRequest.FeeAddress, Signature = registerRequest.Signature, Tier = registerRequest.Tier, NetworkProtocol = registerRequest.NetworkProtocol }; RegisterResult registerResult = await xServer.Register(serverNode); return(Json(registerResult)); }