示例#1
0
 public async Task <ActionResult> Search(
     [FromQuery] JournalSearchModel search)
 {
     return(await GetResult(
                async() => await journalService.Search(search),
                nameof(search)
                ));
 }
示例#2
0
        public async Task <(IEnumerable <JournalViewModel>, ServiceModelState)> Search(JournalSearchModel search)
        {
            var query = context.Journals
                        .IncludeAccounts();

            if (!string.IsNullOrEmpty(search.Memo))
            {
                query = query.Where(j => j.Memo.Contains(search.Memo));
            }

            if (!string.IsNullOrEmpty(search.AccountId))
            {
                query = query.WhereUsedAccountId(search.AccountId);
            }

            if (search.JournalDiv != null)
            {
                query = query.Where(j => j.JournalDiv == search.JournalDiv);
            }

            if (search.FinanceDiv != null)
            {
                query = query.WhereUsedFinaceDiv(search.FinanceDiv);
            }

            if (search.AccrualDateStart != null)
            {
                query = query.Where(j => j.AccrualDate >= search.AccrualDateStart);
            }

            if (search.AccrualDateEnd != null)
            {
                query = query.Where(j => j.AccrualDate <= search.AccrualDateEnd);
            }

            var journlas = await query.AsNoTracking()
                           .OrderBy(j => j.AccrualDate)
                           .ThenBy(j => j.JournalDiv)
                           .ThenBy(j => j.CreatedDate)
                           .ThenBy(j => j.Id)
                           .Select(j => JournalViewModel.Of(j))
                           .ToListAsync();

            return(journlas, null);
        }