Esempio n. 1
0
        private async Task InitAsync()
        {
            Client = new GraphApiClient(
                Config.ApplicationId,
                Config.ApplicationSecret,
                Config.Tenant
                );

            await Client.EnsureInitAsync();

            var b2cApp = await Client.GetB2cExtensionsApplicationAsync();

            var extProperties = await Client.GetApplicationExtensionsAsync(b2cApp.ObjectId);

            ExtensionPropertyName = extProperties.FirstOrDefault()?.GetSimpleName();

            TestUser = CreateTestUser();
            TestUser = await Client.UserCreateAsync(TestUser);

            var group = CreateTestGroup();

            group = await Client.GroupCreateAsync(group);

            TestGroupObjectId = group.ObjectId;

            await Client.GroupAddMemberAsync(group.ObjectId, TestUserObjectId);
        }
        public async Task TestWithCredentials()
        {
            var client = new GraphApiClient(Config.ApplicationId, Config.ApplicationSecret, Config.Tenant);
            await client.EnsureInitAsync();

            // If something is wrong with init call (authorization issues etc), exception will be thrown.
            Assert.True(true);
        }
        public async Task TestWithAuthDelegate()
        {
            var client = new GraphApiClient(Config.Tenant, GetAccessTokenAsync);
            await client.EnsureInitAsync();

            // If something is wrong with init call (authorization issues etc), exception will be thrown.
            Assert.True(true);
        }
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/> from an existing
 /// <see cref="HttpClient"/> instance.
 /// </summary>
 /// <param name="client"></param>
 public ArangoDBClient(HttpClient client)
 {
     _transport  = new HttpApiTransport(client);
     Cursor      = new CursorApiClient(_transport);
     Database    = new DatabaseApiClient(_transport);
     Document    = new DocumentApiClient(_transport);
     Collection  = new CollectionApiClient(_transport);
     Transaction = new TransactionApiClient(_transport);
     Graph       = new GraphApiClient(_transport);
 }
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/> from an existing
 /// <see cref="IApiClientTransport"/> instance.
 /// </summary>
 /// <param name="transport">The ArangoDB transport layer implementation.</param>
 public ArangoDBClient(IApiClientTransport transport)
 {
     _transport  = transport;
     Cursor      = new CursorApiClient(_transport);
     Database    = new DatabaseApiClient(_transport);
     Document    = new DocumentApiClient(_transport);
     Collection  = new CollectionApiClient(_transport);
     Transaction = new TransactionApiClient(_transport);
     Graph       = new GraphApiClient(_transport);
 }
Esempio n. 6
0
        public void Setup()
        {
            _secureHttpRequest = new SecureHttpRequest();

            var config   = TestConfig.Instance.AzureAd;
            var settings = TestConfig.Instance.Settings;

            _graphApiSettings = new GraphApiSettings(new TokenProvider(config), config);
            _passwordService  = new PasswordService();
            _graphApiClient   = new GraphApiClient(_secureHttpRequest, _graphApiSettings, _passwordService, settings);
        }
Esempio n. 7
0
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/>
 /// using the provided transport and serialization layers.
 /// </summary>
 /// <param name="transport">The ArangoDB transport layer implementation.</param>
 /// <param name="serialization">The serialization layer implementation.</param>
 public ArangoDBClient(IApiClientTransport transport, IApiClientSerialization serialization)
 {
     _transport  = transport;
     Auth        = new AuthApiClient(_transport, serialization);
     Cursor      = new CursorApiClient(_transport, serialization);
     Database    = new DatabaseApiClient(_transport, serialization);
     Document    = new DocumentApiClient(_transport, serialization);
     Collection  = new CollectionApiClient(_transport, serialization);
     Transaction = new TransactionApiClient(_transport, serialization);
     Graph       = new GraphApiClient(_transport, serialization);
 }
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/> from an existing
 /// <see cref="HttpClient"/> instance, using the default JSON serialization.
 /// </summary>
 /// <param name="client"></param>
 public ArangoDBClient(HttpClient client)
 {
     _transport  = new HttpApiTransport(client, HttpContentType.Json);
     AqlFunction = new AqlFunctionApiClient(_transport);
     Auth        = new AuthApiClient(_transport);
     Cursor      = new CursorApiClient(_transport);
     Database    = new DatabaseApiClient(_transport);
     Document    = new DocumentApiClient(_transport);
     Collection  = new CollectionApiClient(_transport);
     Transaction = new TransactionApiClient(_transport);
     Graph       = new GraphApiClient(_transport);
 }
 private void InitializeApis(
     IApiClientTransport transport,
     IApiClientSerialization serialization)
 {
     AqlFunction = new AqlFunctionApiClient(transport, serialization);
     Auth        = new AuthApiClient(transport, serialization);
     Cursor      = new CursorApiClient(transport, serialization);
     Database    = new DatabaseApiClient(transport, serialization);
     Document    = new DocumentApiClient(transport, serialization);
     Collection  = new CollectionApiClient(transport, serialization);
     Transaction = new TransactionApiClient(transport, serialization);
     Graph       = new GraphApiClient(transport, serialization);
     User        = new UserApiClient(transport, serialization);
 }
        public void Setup()
        {
            _secureHttpRequest = new Mock <ISecureHttpRequest>();
            _graphApiSettings  = new Mock <IGraphApiSettings>();
            _passwordService   = new Mock <IPasswordService>();
            var settings = new Settings()
            {
                DefaultPassword = "******"
            };

            _defaultPassword = settings.DefaultPassword;
            _baseUrl         = $"{_graphApiSettings.Object.GraphApiBaseUri}/v1.0/{_graphApiSettings.Object.TenantId}";
            _queryUrl        = $"{_baseUrl}/users";
            _client          = new GraphApiClient(_secureHttpRequest.Object, _graphApiSettings.Object, _passwordService.Object, settings);
        }
        public void Setup()
        {
            _createdAccount = null;

            _secureHttpRequest = new SecureHttpRequest();

            var settings      = TestConfig.Instance.Settings;
            var tokenProvider = new TokenProvider(TestConfig.Instance.AzureAd);

            _graphApiSettings         = new GraphApiSettings(tokenProvider, TestConfig.Instance.AzureAd);
            _passwordService          = new PasswordService();
            _identityServiceApiClient =
                new GraphApiClient(_secureHttpRequest, _graphApiSettings, _passwordService, settings);
            _distributedCache = new Mock <ICache>();
            _service          = new UserAccountService(_secureHttpRequest, _graphApiSettings, _identityServiceApiClient,
                                                       settings, _distributedCache.Object);
        }
 public void SetUp()
 {
     _client = new GraphApiClient(ClientFactory,
                                  Logger.None);
 }
 public void Initialize()
 {
     System.Diagnostics.Debug.WriteLine("Initialize");
     _graphApiClient = new GraphApiClient(ApplicationId);
 }
 public GraphApiClientTest(GraphApiClientTestFixture fixture)
 {
     _fixture = fixture;
     _client  = fixture.ArangoDBClient.Graph;
 }
 public GraphClientQueryTests(TestClientFixture fixture)
 {
     _fixture = fixture;
     _client  = fixture.Client;
 }
Esempio n. 16
0
        static void Main(string[] args)
        {
            Console.Write("Checking GraphAPI client credentials...");
            client = new GraphApiClient(applicationId, applicationSecret, tenant);

            try
            {
                client.EnsureInitAsync().Wait();

                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("DONE.");
                Console.ForegroundColor = ConsoleColor.White;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Graph API credentials probably are not correct. Please fix and try again.");
                Console.WriteLine($"Error: {ex}");
                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
                return;
            }

            // Deletes test users (from previous runs)
            DeleteTestUsers();

            var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

            // Load local users
            Console.Write("Retrieving local users...");
            var userRepository = new UserRepository(connectionString);
            var users          = userRepository.GetUsersAsync().Result;

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("DONE.");
            Console.ForegroundColor = ConsoleColor.White;

            // Migrate first 20 users to B2C
            var createdUsers = new List <User>();
            var timespans    = new List <long>();

            foreach (var user in users.Take(20))
            {
                // Assign a test prefix during demo.
                user.DisplayName = "test " + user.DisplayName;

                var sw        = Stopwatch.StartNew();
                var newUser   = client.UserCreateAsync(user).Result;
                var elapsedMs = sw.ElapsedMilliseconds;
                Console.WriteLine($"User added: ({elapsedMs} ms): {user.DisplayName} ({user.SignInNames.First().Value})");
                timespans.Add(elapsedMs);
                createdUsers.Add(newUser);
            }

            Console.WriteLine($"Users created: {users.Count} -Avg creation: {timespans.Average()} ms.");
            Console.WriteLine();

            // Removing users just created for demo's purposes
            Console.WriteLine("Do you want to delete the created users? (Y/N)");
            var confirmation = Console.ReadLine();

            if (!string.Equals(confirmation, "Y", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            foreach (var user in createdUsers)
            {
                var sw = Stopwatch.StartNew();
                client.UserDeleteAsync(user.ObjectId).Wait();
                Console.WriteLine($"User Deleted: ({sw.ElapsedMilliseconds} ms): {user.DisplayName} ({user.SignInNames.First().Value})");
            }
        }
Esempio n. 17
0
        static async Task Main(string[] args)
        {
            Console.Write("Checking GraphAPI client credentials...");
            client = new GraphApiClient(applicationId, applicationSecret, tenant);
            await client.EnsureInitAsync();

            var demoEmail = "*****@*****.**";
            var demoUser  = await client.UserGetBySigninNameAsync(demoEmail);

            if (demoUser == null)
            {
                demoUser = await CreateDemoUser(demoEmail, demoEmail.Substring(0, demoEmail.IndexOf("@")));
            }

            await client.UserUpdateAsync(demoUser.ObjectId, new
            {
                passwordProfile = new PasswordProfile
                {
                    EnforceChangePasswordPolicy  = false,
                    ForceChangePasswordNextLogin = true,
                    Password = "******"
                }
            });

            demoUser = await client.UserGetBySigninNameAsync(demoEmail);


            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("DONE.");
            Console.ForegroundColor = ConsoleColor.White;

            var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

            await TestUpdates();

            await DeleteTestUsers();

            // Load local users
            var userRepository = new UserRepository(connectionString);
            var users          = await userRepository.GetUsersAsync();

            // Migrate first 20 user to B2C
            var createdUsers = new List <User>();
            var timespans    = new List <long>();

            foreach (var user in users.Take(20))
            {
                user.DisplayName = "test " + user.DisplayName;
                var sw      = Stopwatch.StartNew();
                var newUser = await client.UserCreateAsync(user);

                var elapsedMs = sw.ElapsedMilliseconds;
                Console.WriteLine($"User added: ({elapsedMs} ms): {user.DisplayName} ({user.SignInNames.First().Value})");
                timespans.Add(elapsedMs);
                createdUsers.Add(newUser);
            }

            Console.WriteLine($"Users created: {users.Count} -Avg creation: {timespans.Average()} ms.");
            Console.WriteLine();
            Console.WriteLine("Do you want to delete the created users? (Y/N)");
            var confirmation = Console.ReadLine();

            if (!string.Equals(confirmation, "Y", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            foreach (var user in createdUsers)
            {
                var sw = Stopwatch.StartNew();
                client.UserDeleteAsync(user.ObjectId).Wait();
                Console.WriteLine($"User Deleted: ({sw.ElapsedMilliseconds} ms): {user.DisplayName} ({user.SignInNames.First().Value})");
            }
        }
Esempio n. 18
0
 public GraphClientTests(TestClientFixture fixture)
 {
     _fixture = fixture;
     _client  = fixture.Client;
     _extensionPropertyName = _fixture.ExtensionPropertyName;
 }