private async Task ExecuteMainAsync()
{
var config = ConfigureBoxApi();
var session = new BoxJWTAuth(config);
// client with permissions to manage application users
var adminToken = session.AdminToken();
var client = session.AdminClient(adminToken);
var user = await CreateNewUser(client);
Console.WriteLine("New app user created with Id = {0}", user.Id);
// user client with access to user's data (folders, files, etc)
var userToken = session.UserToken(user.Id);
var userClient = session.UserClient(userToken, user.Id);
// root folder has id = 0
var newFolder = await CreateNewFolder(userClient);
Console.WriteLine("New folder created with Id = {0}", newFolder.Id);
var timer = Stopwatch.StartNew();
var file = File.OpenRead("box_logo.png");
var uploaded = await UploadFile(newFolder, userClient, file);
Console.WriteLine("New file uploaded with Id = {0} in {1} ms", uploaded.Id, timer.ElapsedMilliseconds);
}