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); } } }