/// <summary> /// Utility method for setting the customer and account identifiers within the global /// <see cref="_authorizationData"/> instance. /// </summary> /// <param name="authentication">The OAuth authentication credentials.</param> /// <returns></returns> private static async Task SetAuthorizationDataAsync(Authentication authentication) { _authorizationData = new AuthorizationData { Authentication = authentication, DeveloperToken = Settings.Default["DeveloperToken"].ToString() }; ApiEnvironment environment = ((OAuthDesktopMobileAuthCodeGrant)_authorizationData.Authentication).Environment; BingAdsExamplesLibrary.V12.CustomerManagementExampleHelper CustomerManagementExampleHelper = new BingAdsExamplesLibrary.V12.CustomerManagementExampleHelper(null); CustomerManagementExampleHelper.CustomerManagementService = new ServiceClient <ICustomerManagementService>(_authorizationData, environment); var getUserResponse = await CustomerManagementExampleHelper.GetUserAsync(null, true); var user = getUserResponse.User; var predicate = new Predicate { Field = "UserId", Operator = PredicateOperator.Equals, Value = user.Id.ToString() }; var paging = new Paging { Index = 0, Size = 10 }; var request = new SearchAccountsRequest { Ordering = null, PageInfo = paging, Predicates = new[] { predicate } }; var accounts = (await CustomerManagementExampleHelper.SearchAccountsAsync( new[] { predicate }, null, paging)).Accounts.ToArray(); if (accounts.Length <= 0) { return; } _authorizationData.AccountId = (long)accounts[0].Id; _authorizationData.CustomerId = (int)accounts[0].ParentCustomerId; return; }
/// <summary> /// Utility method for setting the customer and account identifiers within the global /// <see cref="_authorizationData"/> instance. /// </summary> /// <param name="authentication">The OAuth authentication credentials.</param> /// <returns></returns> private static async Task SetAuthorizationDataAsync(Authentication authentication) { _authorizationData = new AuthorizationData { Authentication = authentication, DeveloperToken = Settings.Default["DeveloperToken"].ToString() }; ApiEnvironment environment = ((OAuthDesktopMobileAuthCodeGrant)_authorizationData.Authentication).Environment; BingAdsExamplesLibrary.V12.CustomerManagementExampleHelper CustomerManagementExampleHelper = new BingAdsExamplesLibrary.V12.CustomerManagementExampleHelper( OutputStatusMessageDefault: null); CustomerManagementExampleHelper.CustomerManagementService = new ServiceClient <ICustomerManagementService>( authorizationData: _authorizationData, environment: environment); var getUserResponse = await CustomerManagementExampleHelper.GetUserAsync( userId : null, includeLinkedAccountIds : true); var user = getUserResponse.User; // Search for the accounts that the user can access. // To retrieve more than 100 accounts, increase the page size up to 1,000. // To retrieve more than 1,000 accounts you'll need to add paging. var predicate = new Predicate { Field = "UserId", Operator = PredicateOperator.Equals, Value = user.Id.ToString() }; var paging = new Paging { Index = 0, Size = 100 }; var request = new SearchAccountsRequest { Ordering = null, PageInfo = paging, Predicates = new[] { predicate } }; var accounts = (await CustomerManagementExampleHelper.SearchAccountsAsync( predicates: new[] { predicate }, ordering: null, pageInfo: paging))?.Accounts.ToArray(); if (accounts.Length <= 0) { return; } _authorizationData.AccountId = (long)accounts[0].Id; _authorizationData.CustomerId = (int)accounts[0].ParentCustomerId; return; }