コード例 #1
0
ファイル: JournalService.cs プロジェクト: yamachi4416/abook
        public async Task <(JournalViewModel, ServiceModelState)> GetById(string id)
        {
            var user    = context.GetCurrentUser();
            var journal = await context.Journals.AsNoTracking()
                          .Where(j => j.Id == id)
                          .IncludeAccounts()
                          .SingleOrDefaultAsync();

            return(JournalViewModel.Of(journal), null);
        }
コード例 #2
0
ファイル: JournalService.cs プロジェクト: yamachi4416/abook
        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);
        }