public async Task <ActionResult> Search( [FromQuery] JournalSearchModel search) { return(await GetResult( async() => await journalService.Search(search), nameof(search) )); }
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); }