예제 #1
0
        public async Task <List <Customer> > GetCustomerAsync(string bankName, string loanID, bool needCustNumFilter)
        {
            try
            {
                var customerList = new List <Customer>();
                var expressionAttributeValues = new Dictionary <string, AttributeValue>
                {
                    { ":BankName", new AttributeValue {
                          S = bankName
                      } }
                };
                var keyConditionExpression = "BankName = :BankName";
                if (needCustNumFilter)
                {
                    expressionAttributeValues.Add(":LoanID", new AttributeValue {
                        S = loanID
                    });
                    keyConditionExpression = string.Concat(keyConditionExpression, " and LoanID = :LoanID");
                }

                var queryRequest = new QueryRequest
                {
                    TableName = _customerDynamoTable,
                    ExpressionAttributeValues = expressionAttributeValues,
                    KeyConditionExpression    = keyConditionExpression
                };

                var queryResponse = await _customerContext.QueryAsync(queryRequest);

                if (queryResponse != null)
                {
                    foreach (var item in queryResponse.Items)
                    {
                        customerList = customerList.Concat(JsonConvert.DeserializeObject <List <Customer> >(item["CustomerObject"].S)).ToList();
                    }
                }

                return(customerList);
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }