Example #1
0
        public void BoxConfig_CreateFromString()
        {
            const string JsonString =
                @"{
              'boxAppSettings': {
                'clientID': 'cid-123',
                'clientSecret': 'cre-123',
                'appAuth': {
                  'publicKeyID': 'kid-123',
                  'privateKey': 'testKey',
                  'passphrase': 'password'
                },
              },
              'webhooks': {},
              'enterpriseID': 'eid-123'
            }";
            var config = BoxConfigBuilder.CreateFromJsonString(JsonString)
                         .Build();

            Assert.AreEqual(config.ClientId, "cid-123");
            Assert.AreEqual(config.ClientSecret, "cre-123");
            Assert.AreEqual(config.JWTPublicKeyId, "kid-123");
            Assert.AreEqual(config.JWTPrivateKey, "testKey");
            Assert.AreEqual(config.EnterpriseId, "eid-123");
        }
Example #2
0
        public void BoxConfig_SetUriString()
        {
            const string JsonString =
                @"{
              'boxAppSettings': {
                'clientID': 'cid-123',
                'clientSecret': 'cre-123',
                'appAuth': {
                  'publicKeyID': 'kid-123',
                  'privateKey': 'testKey',
                  'passphrase': 'password'
                },
              },
              'webhooks': {},
              'enterpriseID': 'eid-123'
            }";
            var config = BoxConfigBuilder
                         .CreateFromJsonString(JsonString)
                         .Build();

            Assert.AreEqual(config.BoxApiUri, new Uri(Constants.BoxApiUriString));

            var exampleUri = new Uri("https://example.com/");

            config = BoxConfigBuilder.CreateFromJsonString(JsonString)
                     .SetBoxApiUri(exampleUri)
                     .Build();
            Assert.AreEqual(config.BoxApiUri, exampleUri);
        }
        public static async Task AssemblyInitialize(TestContext testContext)
        {
            var jsonConfig = Environment.GetEnvironmentVariable("INTEGRATION_TESTING_CONFIG");

            if (string.IsNullOrEmpty(jsonConfig))
            {
                Debug.WriteLine("No json config found in environment variables Reading from config.json.");
                jsonConfig = ReadFromJson("config.json");
            }

            var config = BoxConfigBuilder.CreateFromJsonString(jsonConfig)
                         .Build();
            var session = new BoxJWTAuth(config);

            var json       = JObject.Parse(jsonConfig);
            var adminToken = await session.AdminTokenAsync();

            AdminClient = session.AdminClient(adminToken);

            if (json["userID"] != null && json["userID"].ToString().Length != 0)
            {
                UserId = json["userID"].ToString();
            }
            else
            {
                var user = await CreateNewUser(AdminClient);

                UserId = user.Id;
            }
            var userToken = await session.UserTokenAsync(UserId);

            UserClient = session.UserClient(userToken, UserId);

            EnterpriseId = config.EnterpriseId;
        }
Example #4
0
        public void BoxConfig_SetBoxApiHostUri()
        {
            var exampleUri = new Uri("https://example.com/base");
            var newConfig  = new BoxConfigBuilder("", "")
                             .SetBoxApiHostUri(exampleUri)
                             .Build();

            Assert.AreEqual(newConfig.BoxApiHostUri.ToString(), exampleUri + "/");
        }
Example #5
0
        private static BoxClient CreateClientByToken(string token)
        {
            var auth = new OAuthSession(token, "YOUR_REFRESH_TOKEN", 3600, "bearer");

            var config = new BoxConfigBuilder(string.Empty, string.Empty, new Uri("http://boxsdk"))
                         .Build();
            var client = new BoxClient(config, auth);

            return(client);
        }
Example #6
0
        public void BoxConfig_SetBoxAccountApiHostUri()
        {
            var exampleUri = new Uri("https://example.com/account");
            var newConfig  = new BoxConfigBuilder("", "")
                             .SetBoxAccountApiHostUri(exampleUri)
                             .Build();

            Assert.AreEqual(newConfig.BoxAccountApiHostUri.ToString(), exampleUri + "/");
            Assert.AreEqual(newConfig.AuthCodeBaseUri.ToString(), exampleUri + "/" + "oauth2/authorize");
        }
Example #7
0
        private static async Task MainAsync()
        {
            // rename the private_key.pem.example to private_key.pem and put your JWT private key in the file
            var privateKey = File.ReadAllText("private_key.pem.example");

            var boxConfig = new BoxConfigBuilder(_clientId, _clientSecret, _enterpriseId, privateKey, _jwtPrivateKeyPassword, _jwtPublicKeyId)
                            .Build();
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = await boxJWT.AdminTokenAsync();

            Console.WriteLine("Admin Token: " + adminToken);
            Console.WriteLine();

            var adminClient = boxJWT.AdminClient(adminToken);

            Console.WriteLine("Admin root folder items");
            var items = await adminClient.FoldersManager.GetFolderItemsAsync("0", 500);

            items.Entries.ForEach(i =>
            {
                Console.WriteLine("\t{0}", i.Name);
                //if (i.Type == "file")
                //{
                //    var previewLink = adminClient.FilesManager.GetPreviewLinkAsync(i.Id).Result;
                //    Console.WriteLine("\tPreview Link: {0}", previewLink.ToString());
                //    Console.WriteLine();
                //}
            });
            Console.WriteLine();

            var userRequest = new BoxUserRequest()
            {
                Name = "test appuser", IsPlatformAccessOnly = true
            };
            var appUser = await adminClient.UsersManager.CreateEnterpriseUserAsync(userRequest);

            Console.WriteLine("Created App User");

            var userToken = await boxJWT.UserTokenAsync(appUser.Id);

            var userClient = boxJWT.UserClient(userToken, appUser.Id);

            var userDetails = await userClient.UsersManager.GetCurrentUserInformationAsync();

            Console.WriteLine("\nApp User Details:");
            Console.WriteLine("\tId: {0}", userDetails.Id);
            Console.WriteLine("\tName: {0}", userDetails.Name);
            Console.WriteLine("\tStatus: {0}", userDetails.Status);
            Console.WriteLine();

            await adminClient.UsersManager.DeleteEnterpriseUserAsync(appUser.Id, false, true);

            Console.WriteLine("Deleted App User");
        }
Example #8
0
        private static IBoxConfig ConfigureBoxApi()
        {
            IBoxConfig config = null;

            using (var fs = new FileStream(@"YOUR_JSON_FILE_HERE", FileMode.Open))
            {
                config = BoxConfigBuilder.CreateFromJsonFile(fs).Build();
            }

            return(config);
        }
        public async Task AuthenticateLive_InvalidAuthCode_Exception()
        {
            // Arrange
            IRequestHandler handler = new HttpRequestHandler();
            IBoxService     service = new BoxService(handler);
            IBoxConfig      config  = new BoxConfigBuilder(null, null, null).Build();

            IAuthRepository authRepository = new AuthRepository(config, service, Converter);

            // Act
            _ = await authRepository.AuthenticateAsync("fakeAuthorizationCode");
        }
Example #10
0
        private static void Main()
        {
            var boxConfig = BoxConfigBuilder.CreateFromJsonString(GetConfigJson())
                            // Set web proxy
                            .SetWebProxy(new BoxHttpProxy())
                            .Build();

            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken  = boxJWT.AdminTokenAsync().Result;
            var adminClient = boxJWT.AdminClient(adminToken);

            _ = adminClient.FoldersManager.GetFolderItemsAsync("0", 500).Result;
        }
Example #11
0
        public void BoxConfig_SetAuthTokenUriString()
        {
            var boxConfig = new BoxConfigBuilder("", "")
                            .Build();

            Assert.AreEqual(boxConfig.BoxAuthTokenApiUri, new Uri(Constants.BoxAuthTokenApiUriString));

            var exampleUri = new Uri("https://example.com/token");
            var newConfig  = new BoxConfigBuilder("", "")
                             .SetBoxTokenApiUri(exampleUri)
                             .Build();

            Assert.AreEqual(newConfig.BoxAuthTokenApiUri.ToString(), exampleUri + "/");
        }
Example #12
0
        private async Task ExecuteMainAsync()
        {
            Console.WriteLine("Access token: ");
            var accessToken = Console.ReadLine();

            Console.WriteLine("Remote file name: ");
            var fileName = Console.ReadLine();

            Console.WriteLine("Local file path: ");
            var localFilePath = Console.ReadLine();

            Console.WriteLine("Parent folder Id: ");
            var parentFolderId = Console.ReadLine();

            var timer = Stopwatch.StartNew();

            var auth = new OAuthSession(accessToken, "YOUR_REFRESH_TOKEN", 3600, "bearer");

            var config = new BoxConfigBuilder("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", new Uri("http://boxsdk"))
                         .Build();
            var client = new BoxClient(config, auth);

            var file        = File.OpenRead(localFilePath);
            var fileRequest = new BoxFileRequest
            {
                Name   = fileName,
                Parent = new BoxFolderRequest {
                    Id = parentFolderId
                }
            };

            // Normal file upload
            // var bFile = await client.FilesManager.UploadAsync(fileRequest, file);

            // Supercharged filed upload with progress report, only works with file >= 50m.
            var progress = new Progress <BoxProgress>(val => { Console.WriteLine("{0}%", val.progress); });
            var bFile    = await client.FilesManager.UploadUsingSessionAsync(file, fileName, parentFolderId, null, progress);

            Console.WriteLine("{0} uploaded to folder: {1} as file: {2}", localFilePath, parentFolderId, bFile.Id);
            Console.WriteLine("Time spend : {0} ms", timer.ElapsedMilliseconds);
        }