public async Task ReadNewSongs() { var theseNewSongs = new List <SongCsvModel>(); var getObjectResponse = await GetSongsFromS3UploadAsync(BucketName, KeyName); var songRows = getObjectResponse.Split('\n'); LambdaLogger.Log($"***INFO: new songs from file (songRows): {JsonConvert.SerializeObject(songRows)}"); foreach (var songRow in songRows) { if (songRow.IsNullOrEmpty()) { continue; } var columns = songRow.Split(','); var parseResult = Int32.TryParse(columns[0], out var songNumber); if (!parseResult || columns[0].Length <= 0 || columns[2].Length <= 0) { continue; } var song = new SongCsvModel { SongNumber = $"{columns[0]}{columns[1]}", Artist = columns[4], SearchArtist = columns[4].ToLowerInvariant(), Title = columns[3], SearchTitle = columns[3].ToLowerInvariant() }; theseNewSongs.Add(song); } LambdaLogger.Log($"***INFO: new songs filtered (theseNewSongs): {JsonConvert.SerializeObject(theseNewSongs)}"); NewSongs = theseNewSongs; }
public async Task ReadOldSongs() { var theseExsitingSongs = new List <SongCsvModel>(); var rows = await DynamodbProvider.DynamoDbScanAsync(); LambdaLogger.Log($"***INFO: old songs from database (rows.Items): {JsonConvert.SerializeObject(rows.Items)}"); foreach (var item in rows.Items) { if (item.TryGetValue("artist", out var artist) && item.TryGetValue("song_number", out var number) && item.TryGetValue("title", out var title) && item.TryGetValue("search_title", out var searchTitle) && item.TryGetValue("search_artist", out var searchArtist)) { var song = new SongCsvModel { Artist = artist.S, SongNumber = number.S, SearchArtist = searchArtist.S, SearchTitle = searchTitle.S, Title = title.S }; theseExsitingSongs.Add(song); } } LambdaLogger.Log($"***INFO: old songs filtered (theseExsitingSongs): {JsonConvert.SerializeObject(theseExsitingSongs)}"); OldSongs = theseExsitingSongs; }