private void Get(IWebClient client) { var request = new GetServiceInfoRequest { ServiceId = _serviceId }; try { var response = client.GetResponse(request); Console.WriteLine("==========================Result=========================="); Console.WriteLine("Response: \r\n{0}", response.ResponseJsonString); Console.WriteLine("==========================Result=========================="); } catch (ServerException ex) { Console.WriteLine("ServerException happened: \r\n\tErrorCode: {0}\r\n\tErrorMessage: {1}", ex.ErrorCode, ex.ErrorMessage); } catch (ClientException ex) { Console.WriteLine("ClientException happened: \r\n\tRequestId: {0}\r\n\tErrorCode: {1}\r\n\tErrorMessage: {2}", ex.RequestId, ex.ErrorCode, ex.ErrorMessage); } catch (Exception ex) { Console.WriteLine("Unknown Exception happened: {0}\r\n{1}", ex.Message, ex.StackTrace); } }
private ServiceInfo[] GetAddressInternal(string name, string group) { var itemKey = new ServiceIdentifier(name, group); // ReSharper disable once InconsistentlySynchronizedField var url = _defaultBaseUrlDictionary.GetOrAdd(itemKey, key => { if (key == ServiceIdentifier.Empty) { return(null); } if (_registryClient.Value == null) { return(null); } var request = new GetServiceInfoRequest { Services = new[] { new ServiceIdentifierDto { Name = name, Group = group, } } }; try { var response = _registryClient.Value.GetServiceInfo(request); var result = response.Services.FirstOrDefault(); var serviceInfos = result?.ServiceInfos .Select(it => new ServiceInfo { Name = name, Group = group, Address = it.Address, Data = it.Data, }) .ToArray(); _updateTimeDic.AddOrUpdate(itemKey, DateTime.Now, (k, oldValue) => DateTime.Now); return(serviceInfos); } catch (Exception ex) { LogHelper.Error(ex); throw; } }); return(url); }
private void DoUpdate() { var toUpdateServices = _updateTimeDic .Where(it => (DateTime.Now - it.Value).TotalSeconds > UpdateInterval) .Select(it => it.Key) .ToArray(); var services = toUpdateServices .Select(it => new ServiceIdentifierDto { Name = it.Name, Group = it.Group }) .ToArray(); if (services.Length == 0) { return; } var request = new GetServiceInfoRequest { Services = services }; try { var response = _registryClient.Value.GetServiceInfo(request); foreach (var item in response.Services) { var serviceInfos = item.ServiceInfos ?.Select(it => new ServiceInfo { Name = it.Name, Group = it.Group, Address = it.Address, Data = it.Data, }) .ToArray(); var key = new ServiceIdentifier(item.Identifier.Name, item.Identifier.Group); _defaultBaseUrlDictionary[key] = serviceInfos; _updateTimeDic.AddOrUpdate(key, DateTime.Now, (k, oldValue) => DateTime.Now); } } catch (Exception ex) { LogHelper.Error(ex); } }
public GetServiceInfoResponse GetServiceInfo(GetServiceInfoRequest request) { if (!(request?.Services?.Length > 0)) { return(new GetServiceInfoResponse()); } var results = GetResultsAsync(request.Services); var response = new GetServiceInfoResponse { Services = results.Result }; return(response); }
public Command GetServiceInfo(string serverID, string serviceID) { var server = GetServer(serverID); Client client = new Client(); GetServiceInfoRequest request = new GetServiceInfoRequest(); string url = client.GetRealUrl(request, server.Url); request.id = serviceID; var response = SDKFactory.Client.Execute(request, url: url); if (response.IsError) { throw new Exception(response?.ErrorMessage); } return(response.Service); }
public async Task <GetServiceInfoResponse> GetServiceInfoAsync(GetServiceInfoRequest request) { if (!(request?.Services?.Length > 0)) { return(new GetServiceInfoResponse()); } var results = await GetResultsAsync(request.Services).ConfigureAwait(false); var response = new GetServiceInfoResponse { Services = results }; return(response); }
public GetServiceInfoResponse GetServiceInfo(GetServiceInfoRequest request) { throw new NotImplementedException(); //if (request == null) // return new GetServiceInfoResponse(); //var response = new GetServiceInfoResponse //{ // ServiceName = request.ServiceName, // //Namespace = request.Namespace, // Group = request.Group, // Address = ServiceDal.GetServiceInfo(request.ServiceName, request.Group) //}; //return response; }
public Task <GetServiceInfoResponse> GetServiceInfoAsync(GetServiceInfoRequest request) { return(Task.FromResult(GetServiceInfo(request))); }