コード例 #1
0
        public async Task <SearchResult <Transaction> > SearchTransaction(TransactionSearchOptions searchOptions)
        {
            IQueryable <Transaction> query = this.db.Transactions;

            if (searchOptions.CurrencyCode.HasValue)
            {
                query = query.Where(x => x.CurrencyCode == searchOptions.CurrencyCode.Value);
            }

            if (searchOptions.Status.HasValue)
            {
                query = query.Where(x => x.Status == searchOptions.Status.Value);
            }

            if (searchOptions.FromDate.HasValue)
            {
                query = query.Where(x => x.TransactionDate >= searchOptions.FromDate.Value);
            }

            if (searchOptions.ToDate.HasValue)
            {
                query = query.Where(x => x.TransactionDate <= searchOptions.ToDate.Value);
            }

            return(new SearchResult <Transaction>
            {
                Count = await query.CountAsync(),
                Items = await query
                        .Skip(searchOptions.Skip)
                        .Take(searchOptions.Take)
                        .ToArrayAsync(),
            });
        }
コード例 #2
0
        private static string GetTransactionSearchPath(string transactionType, TransactionSearchOptions searchOptions,
                                                       Dictionary <string, string> optionalParams = null)
        {
            if (searchOptions == null)
            {
                throw new ArgumentNullException(nameof(searchOptions));
            }
            var queryString = searchOptions.GetQueryParamters();

            if (optionalParams != null && optionalParams.Count > 0)
            {
                queryString = $"{queryString}&{optionalParams.GetQueryParameters()}";
            }
            return($"{string.Format(TransactionSearchPath, transactionType)}?{queryString}");
        }
コード例 #3
0
 public Task <SearchResponse> SearchByTransactionAsync(string transactionType, TransactionSearchOptions searchOptions,
                                                       Dictionary <string, string> optionalParams = null)
 {
     return(GetAsync <SearchResponse>(GetTransactionSearchPath(transactionType, searchOptions, optionalParams)));
 }