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);
        }