示例#1
0
        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;
        }
示例#2
0
        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;
        }