public async Task<BoxCollaboration> AddCollaborationAsync(BoxCollaborationRequest collaborationRequest, List<string> fields = null, bool? notify = null)
{
collaborationRequest.ThrowIfNull("collaborationRequest")
.Item.ThrowIfNull("collaborationRequest.Item")
.Id.ThrowIfNullOrWhiteSpace("collaborationRequest.Item.Id");
collaborationRequest.AccessibleBy.ThrowIfNull("collaborationRequest.AccessibleBy");
collaborationRequest.Role.ThrowIfNullOrWhiteSpace("Role");
BoxRequest request = new BoxRequest(_config.CollaborationsEndpointUri)
.Method(RequestMethod.Post)
.Param(ParamFields, fields)
.Payload(_converter.Serialize(collaborationRequest));
if (notify.HasValue)
{
var value = notify.Value ? "true" : "false";
request.Param("notify", value);
}
IBoxResponse<BoxCollaboration> response = await ToResponseAsync<BoxCollaboration>(request).ConfigureAwait(false);
return response.ResponseObject;
}