Exemplo n.º 1
0
 /// <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));
 }
Exemplo n.º 2
0
 /// <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));
 }
Exemplo n.º 3
0
 /// <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));
 }
Exemplo n.º 4
0
 /// <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));
 }
Exemplo n.º 5
0
        /// <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));
        }