public async Task SaveApprenticeshipFavourites(string employerAccountId, Domain.WriteModel.ApprenticeshipFavourites apprenticeshipFavourite) { if (apprenticeshipFavourite == null) { throw new ArgumentNullException(nameof(apprenticeshipFavourite)); } var providers = apprenticeshipFavourite.SelectMany(s => s.Providers); try { var table = await GetTable(); var entity = new ApprenticeshipFavouritesEntity(employerAccountId, apprenticeshipFavourite); // Create the InsertOrReplace table operation TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity); // Execute the operation. TableResult result = await _retryPolicy.ExecuteAsync(context => table.ExecuteAsync(insertOrMergeOperation), new Context(nameof(SaveApprenticeshipFavourites))); ApprenticeshipFavouritesEntity insertedCustomer = result.Result as ApprenticeshipFavouritesEntity; } catch (StorageException ex) { _logger.LogError(ex, "Unable to Save Apprenticeship Favourites"); throw; } }
private async Task <ReadModel.ApprenticeshipFavourites> BuildReadModel(Domain.WriteModel.ApprenticeshipFavourites favouritesFromTableStorage) { var buildFavouritesTasks = favouritesFromTableStorage.Select(BuildReadModelItem).ToList(); await Task.WhenAll(buildFavouritesTasks); var favourites = new ReadModel.ApprenticeshipFavourites(); favourites.AddRange(buildFavouritesTasks.Select(x => x.Result)); return(favourites); }