public static async Task Run([TimerTrigger("0 */90 * * * *")] TimerInfo myTimer, [Table("movies", Connection = "AzureWebJobsStorage")] IAsyncCollector <MovieTableEntity> movieTable, [Table("movies", Connection = "AzureWebJobsStorage")] CloudTable movieCloudTable, ILogger log) { log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); var response = await FinnkinoApi.GetAllCurrentMovies(); var movies = await ParseXmlToMovies(response); foreach (var movie in movies) { var findOperation = TableOperation.Retrieve <MovieTableEntity>("MOVIE", movie.Id); var findResult = await movieCloudTable.ExecuteAsync(findOperation); if (findResult.Result == null) { await movieTable.AddAsync(movie.ToTableEntity()); continue; } var existingRow = (MovieTableEntity)findResult.Result; await UpdateProperties(movieCloudTable, existingRow, movie); } }
public async Task Run([TimerTrigger("0 */90 * * * *")] TimerInfo myTimer, ILogger log) { log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); var response = await FinnkinoApi.GetAllCurrentMovies(); var movies = await ParseXmlToMovies(response); var response2 = await FinnkinoApi.GetAllFutureMovies(); var movies2 = await ParseXmlToMovies(response2); foreach (var movie in movies2) { movie.InSchedule = false; } movies.AddRange(movies2); await _movieRepository.AddOrUpdateMovies(movies); }
public async Task Run([TimerTrigger("0 */90 * * * *")] TimerInfo myTimer, ILogger log) { log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); var response = await FinnkinoApi.GetAllCurrentMovies(); var movies = await ParseXmlToMovies(response); var response2 = await FinnkinoApi.GetAllFutureMovies(); var movies2 = await ParseXmlToMovies(response2); foreach (var movie in movies2) { movie.InSchedule = false; } movies.AddRange(movies2); foreach (var movie in movies) { try { var existingMovie = _cosmosMovieService.GetItemAsync(movie.MovieId); if (existingMovie == null) { await _cosmosMovieService.AddItemAsync(movie); continue; } await _cosmosMovieService.UpdateItemAsync(movie.MovieId, movie); } catch (CosmosException ex) when(ex.StatusCode == HttpStatusCode.TooManyRequests) //429 { _logger.LogError($"Cant create document. Request was throttled. Exception thrown: {ex.Message}"); } catch (Exception ex) { _logger.LogError($"Could not update movies. Exception thrown: {ex.Message}"); } } }