/// <summary> /// Used to edit the settings and information about a user. This method only works for enterprise admins. To roll a user out /// of the enterprise (and convert them to a standalone free user), update the special enterprise attribute to be null. /// </summary> /// <param name="userRequest">BoxUserRequest object.</param> /// <param name="fields">Attribute(s) to include in the response.</param> /// <returns>Returns the user object for the updated user. Errors may be thrown when the fields are invalid or this API call is made from a non-admin account.</returns> public async Task <BoxUser> UpdateUserInformationAsync(BoxUserRequest userRequest, IEnumerable <string> fields = null) { userRequest.ThrowIfNull("userRequest") .Id.ThrowIfNullOrWhiteSpace("userRequest.Id"); BoxRequest request = new BoxRequest(_config.UserEndpointUri, userRequest.Id) .Param(ParamFields, fields) .Payload(_converter.Serialize(userRequest)) .Method(RequestMethod.Put); IBoxResponse <BoxUser> response = await ToResponseAsync <BoxUser>(request).ConfigureAwait(false); return(response.ResponseObject); }
/// <summary> /// Used to provision a new user in an enterprise. This method only works for enterprise admins. /// </summary> /// <param name="userRequest">BoxUserRequest object.</param> /// <param name="fields">Attribute(s) to include in the response.</param> /// <returns>Returns the user object for the newly created user.</returns> public async Task <BoxUser> CreateEnterpriseUserAsync(BoxUserRequest userRequest, IEnumerable <string> fields = null) { userRequest.ThrowIfNull("userRequest"); userRequest.Name.ThrowIfNull("userRequest.Name"); BoxRequest request = new BoxRequest(_config.UserEndpointUri, "") .Param(ParamFields, fields) .Payload(_converter.Serialize(userRequest)) .Method(RequestMethod.Post); IBoxResponse <BoxUser> response = await ToResponseAsync <BoxUser>(request).ConfigureAwait(false); return(response.ResponseObject); }