C# graph api upload file one drive

C#
    /// <summary> 
    /// Take a file and upload it to the service 
    /// </summary> 
    /// <param name="fileToUpload">The file that we want to upload</param> 
    /// <param name="uploadToSharePoint">Should we upload to SharePoint or OneDrive?</param> 
    public async Task UploadSmallFile(StorageFile fileToUpload, bool uploadToSharePoint) 
    { 
        Stream fileStream = (await fileToUpload.OpenReadAsync()).AsStreamForRead(); 
        DriveItem uploadedFile = null; 

        // Do we want OneDrive for Business/Consumer or do we want a SharePoint Site? 
        if (uploadToSharePoint) 
        { 
            uploadedFile = await graphClient.Sites["root"].Drive.Root.ItemWithPath(fileToUpload.Name).Content.Request().PutAsync<DriveItem>(fileStream); 
        } 
        else 
        { 
            uploadedFile = await graphClient.Me.Drive.Root.ItemWithPath(fileToUpload.Name).Content.Request().PutAsync<DriveItem>(fileStream); 
        } 
    }
Source

Also in C#: