public void PrintReceiptsCashBasisIncome() { var client = new AwsDataAccess.DatabaseClient <ReceiptSaveResult>( Factory.CreateAmazonDynamoDbClient(), new ConsoleLogger()); var start = "2020-10-17T14:40:52Z"; var end = "2020-10-19T14:40:52Z"; var scanRequest = new ScanRequest // Can't use between on an id. It must be used on a range which requires an id. Until requests take longer than 30 seconds and timeout this solution is adequate. { TableName = new ReceiptSaveResult().GetTable(), ExpressionAttributeValues = new Dictionary <string, AttributeValue> { { ":start", new AttributeValue { S = start } }, { ":end", new AttributeValue { S = end } } }, ExpressionAttributeNames = new Dictionary <string, string> { { "#timestamp", "timestamp" } }, FilterExpression = "#timestamp between :start and :end" }; var results = client.ScanAll(scanRequest); }
public void Run(APIGatewayProxyRequest request, APIGatewayProxyResponse response, FinanceUser user) { var start = request.QueryStringParameters["start"]; var end = request.QueryStringParameters["end"]; var client = new AwsDataAccess.DatabaseClient <ReceiptSaveResult>( new AmazonDynamoDBClient(), new ConsoleLogger()); var scanRequest = new ScanRequest { TableName = new ReceiptSaveResult().GetTable(), ExpressionAttributeValues = new Dictionary <string, AttributeValue> { { ":start", new AttributeValue { S = start } }, { ":end", new AttributeValue { S = end } } }, ExpressionAttributeNames = new Dictionary <string, string> { { "#timestamp", "timestamp" } }, FilterExpression = "#timestamp between :start and :end" }; var results = client.ScanAll(scanRequest); results = results.OrderBy(x => x.Timestamp).ToList(); response.Body = JsonConvert.SerializeObject(results); }