public async Task SaveMonetization(GlobalMonetizationModel globalMonetizationModel,
                                           CancellationToken cancellationToken)
        {
            var userObjectId = this.CurrentUserProvider.GetObjectId();
            var user         = await this.FairplaytubeDatabaseContext.ApplicationUser
                               .Include(p => p.UserExternalMonetization)
                               .Where(p => p.AzureAdB2cobjectId.ToString() == userObjectId)
                               .SingleAsync(cancellationToken: cancellationToken);

            if (user.UserExternalMonetization.Count > 0)
            {
                var userMonetizationItems = user.UserExternalMonetization;
                foreach (var singleItem in userMonetizationItems)
                {
                    this.FairplaytubeDatabaseContext.UserExternalMonetization.Remove(singleItem);
                }
                await this.FairplaytubeDatabaseContext.SaveChangesAsync(cancellationToken);
            }
            if (globalMonetizationModel.MonetizationItems.Count > 0)
            {
                foreach (var singleItem in globalMonetizationModel.MonetizationItems)
                {
                    await this.FairplaytubeDatabaseContext.UserExternalMonetization.AddAsync(new DataAccess.Models.UserExternalMonetization()
                    {
                        ApplicationUserId = user.ApplicationUserId,
                        MonetizationUrl   = singleItem.MonetizationUrl
                    }, cancellationToken);
                }
                await this.FairplaytubeDatabaseContext.SaveChangesAsync(cancellationToken);
            }
        }
        public async Task SaveMonetizationAsync(GlobalMonetizationModel globalMonetizationModel)
        {
            var authorizedHttpClient = this.HttpClientService.CreateAuthorizedClient();
            var response             = await authorizedHttpClient.PostAsJsonAsync(ApiRoutes.UserProfileController.SaveMonetization,
                                                                                  globalMonetizationModel);

            if (!response.IsSuccessStatusCode)
            {
                ProblemHttpResponse problemHttpResponse = await response.Content.ReadFromJsonAsync <ProblemHttpResponse>();

                if (problemHttpResponse != null)
                {
                    throw new CustomValidationException(problemHttpResponse.Detail);
                }
                else
                {
                    throw new CustomValidationException(response.ReasonPhrase);
                }
            }
        }