public async Task<BoxFile> CopyAsync(BoxFileRequest fileRequest, List<string> fields = null)
{
fileRequest.ThrowIfNull("fileRequest");
fileRequest.Id.ThrowIfNullOrWhiteSpace("fileRequest.Id");
fileRequest.Parent.ThrowIfNull("fileRequest.Parent")
.Id.ThrowIfNullOrWhiteSpace("fileRequest.Parent.Id");
BoxRequest request = new BoxRequest(_config.FilesEndpointUri, string.Format(Constants.CopyPathString, fileRequest.Id))
.Method(RequestMethod.Post)
.Param(ParamFields, fields);
fileRequest.Id = null; //file Id was used as a query parameter in this case
request.Payload(_converter.Serialize(fileRequest));
IBoxResponse<BoxFile> response = await ToResponseAsync<BoxFile>(request).ConfigureAwait(false);
return response.ResponseObject;
}