public async Task <IEnumerable <Device> > GetThermostats(string username, string password) { var request = new ApiClientRequest { Username = username, Password = password, BaseAddress = ApiBaseAddress, RequestUri = "ThermostatService.svc", Content = CreateRequestContent(GetThermostatsRequest, username, password) }; var response = await _soapApiClient.Request(request); var responseAsXml = XDocument.Parse(response); return(responseAsXml .Descendants(EnergyNamespace + "ThermostatDetailsDataContract") .Select(d => new Device { Identifier = new Guid(d.Descendants(ThermostatNamespace + "ThermostatId").Single().Value), Name = d.Descendants(ThermostatNamespace + "Name").Single().Value, Capability = DeviceCapability.None, Type = DeviceType.Fifthplay })); }
public Task <string> Request(ApiClientRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrWhiteSpace(request.Username)) { throw new ArgumentException("Username is required", nameof(request)); } if (string.IsNullOrWhiteSpace(request.Password)) { throw new ArgumentException("Password is required", nameof(request)); } if (string.IsNullOrWhiteSpace(request.BaseAddress)) { throw new ArgumentException("BaseAddress is required", nameof(request)); } if (string.IsNullOrWhiteSpace(request.RequestUri)) { throw new ArgumentException("RequestUri is required", nameof(request)); } if (string.IsNullOrWhiteSpace(request.Content)) { throw new ArgumentException("Content is required", nameof(request)); } using (var httpClient = CreateHttpClient(request.Username, request.Password, request.BaseAddress)) using (var content = new StringContent(request.Content, Encoding.UTF8, "application/soap+xml")) { var response = httpClient.PostAsync(request.RequestUri, content).Result; if (!response.IsSuccessStatusCode) { var error = response.Content.ReadAsStringAsync().Result; throw new InvalidOperationException($"{error} ({response.StatusCode} {response.ReasonPhrase})"); } return(response .Content .ReadAsStringAsync()); } }
public async Task SwitchSmartPlug(string username, string password, Guid identifier, bool isOn) { var request = new ApiClientRequest { Username = username, Password = password, BaseAddress = ApiBaseAddress, RequestUri = "EnergyService.svc", Content = CreateRequestContent(SwitchSmartPlugRequest, username, password) .Replace("{smartplugid}", identifier.ToString()) .Replace("{value}", isOn.ToString().ToLowerInvariant()) }; var response = await _soapApiClient.Request(request); if (response.Contains("Fault")) { throw new Exception("Failed to switch smart plug"); } }
public UploadDeviceBackupResponse UploadDeviceBackup(UploadDeviceBackupRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return(apiClientRequest.PerformRequest <UploadDeviceBackupResponse>("upload_device_backup", requestData)); }
public RegisterOtpDeviceResponse RegisterOtpDevice(RegisterOtpDeviceRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return(apiClientRequest.PerformRequest <RegisterOtpDeviceResponse>("register_otp_device", requestData)); }
public GetServerInfoResponse GetServerInfo(GetServerInfoRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return(apiClientRequest.PerformRequest <GetServerInfoResponse>("get_server_info", requestData)); }
public GetDevicesKeysResponse GetDeviceKeys(GetDevicesKeysRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return(apiClientRequest.PerformRequest <GetDevicesKeysResponse>("get_device_keys", requestData)); }
//================================================================================ // DO NOT ADD ANY MORE REQUESTS HERE. PLACE IN "Requests" subnamespace. //================================================================================ // // Authenticated Requests // public GetUserResponse GetUser(GetUserRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return(apiClientRequest.PerformRequest <GetUserResponse>("get_user", requestData)); }
public UploadDeviceBackupResponse UploadDeviceBackup(UploadDeviceBackupRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return apiClientRequest.PerformRequest<UploadDeviceBackupResponse>("upload_device_backup", requestData); }
public RegisterOtpDeviceResponse RegisterOtpDevice(RegisterOtpDeviceRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return apiClientRequest.PerformRequest<RegisterOtpDeviceResponse>("register_otp_device", requestData); }
public GetServerInfoResponse GetServerInfo(GetServerInfoRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return apiClientRequest.PerformRequest<GetServerInfoResponse>("get_server_info", requestData); }
public GetDevicesKeysResponse GetDeviceKeys(GetDevicesKeysRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return apiClientRequest.PerformRequest<GetDevicesKeysResponse>("get_device_keys", requestData); }
//================================================================================ // DO NOT ADD ANY MORE REQUESTS HERE. PLACE IN "Requests" subnamespace. //================================================================================ // // Authenticated Requests // public GetUserResponse GetUser(GetUserRequest requestData) { var apiClientRequest = new ApiClientRequest(ApiUrl, ApiKey, PrivateKeyPem); return apiClientRequest.PerformRequest<GetUserResponse>("get_user", requestData); }