Exemple #1
0
        /// <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;
        }