/// <summary> /// Edits the currently authenticated user. /// </summary> /// <param name="entity">The update entity.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public Task <UserEntity> EditCurrentUserAsync(UserEditEntity entity, CancellationToken cancellationToken = default(CancellationToken)) { return(_client.RequestJsonSerializedAsync <UserEditEntity, UserEntity>(HttpMethod.Post, "user", entity, cancellationToken)); }
/// <summary> /// Gets a event by UUID. /// </summary> /// <param name="eventUuid">The UUID.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>The event.</returns> public Task <EventEntity> GetEventAsync(Guid eventUuid, CancellationToken cancellationToken = default(CancellationToken)) { return(_client.RequestJsonSerializedAsync <EventEntity>(HttpMethod.Get, $"event/{eventUuid}", cancellationToken)); }
/// <summary> /// Gets the current session information. /// </summary> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public Task <SessionEntity> GetCurrentSesionAsync(CancellationToken cancellationToken = default(CancellationToken)) { return(_client.RequestJsonSerializedAsync <SessionEntity>(HttpMethod.Get, "session", cancellationToken)); }
/// <summary> /// Gets a live energy reading from the device service, if applicable. /// </summary> /// <param name="deviceUuid">The device UUID.</param> /// <param name="serviceUuid">The service UUID.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public Task <EnergyReadingEntity> GetDeviceServiceEnergyAsync(Guid deviceUuid, Guid serviceUuid, CancellationToken cancellationToken = default(CancellationToken)) { return(_client.RequestJsonSerializedAsync <EnergyReadingEntity>(HttpMethod.Get, $"device/{deviceUuid}/service/{serviceUuid}/energy", cancellationToken)); }
/// <summary> /// Scans the group list. /// </summary> /// <param name="limit">The limit, maximum of 50.</param> /// <param name="cursor">The previously returned cursor.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>The scanned groups.</returns> public async Task <ScanResult <GroupEntity> > ScanGroupsAsync(int limit = 50, Cursor cursor = default(Cursor), CancellationToken cancellationToken = default(CancellationToken)) { if (limit < 0 || limit > 50) { throw new ArgumentOutOfRangeException(nameof(limit), "The limit cannot be larger than 50"); } // build uri string uri = $"group?limit={limit}"; if (!cursor.IsEnd) { uri += string.Format("&cursor={0}", WebUtility.UrlEncode(cursor.Token)); } // load results for current cursor GroupResultsEntity entity = await _client.RequestJsonSerializedAsync <GroupResultsEntity>(HttpMethod.Get, uri, cancellationToken).ConfigureAwait(false); return(new ScanResult <GroupEntity>(entity.Groups, entity.TotalGroups, entity.Cursor)); }