using Amazon.DynamoDBv2; using Amazon.DynamoDBv2.DataModel; using Amazon.DynamoDBv2.DocumentModel; using MediaLibrary.Models; namespace MediaLibrary.Services { public class DynamoFileMetadataService : IFileMetadataService { private AmazonDynamoDBClient _dynamoDBclient; public DynamoFileMetadataService () { _dynamoDBclient = new AmazonDynamoDBClient(); } public async void SaveMetadata(FileMetadataDataModel data) { DynamoDBContext context = new DynamoDBContext(_dynamoDBclient); await context.SaveAsync(data); } public async Task> GetFileList() { try { IEnumerable list; DynamoDBContext context = new DynamoDBContext(_dynamoDBclient); var conditions = new List(); // you can add scan conditions, or leave empty var queryResult = await context.ScanAsync(conditions).GetRemainingAsync(); return queryResult; } catch (Exception ex) { string msg = ex.Message; throw; } } public async Task GetFileMetadata(string itemId) { try { DynamoDBContext context = new DynamoDBContext(_dynamoDBclient); // you can add scan conditions, or leave empty FileMetadataDataModel fileData = await context.LoadAsync(itemId); return fileData; } catch (Exception ex) { string msg = ex.Message; throw; } } public async Task DeleteFileMetadata(FileMetadataDataModel fileData) { DynamoDBContext context = new DynamoDBContext(_dynamoDBclient); try { await context.DeleteAsync(fileData); return true; } catch (Exception ex) { return false; } } } }