public PaginationModel <TradeAccountInfoGridViewModel> GetAccountsInfo(int pageIndex, int pageSize, string sorting, long[] idMasterAccounts, long[] idTradeAccounts, Period period) { var result = new PaginationModel <TradeAccountInfoGridViewModel>(); var query = _tradeAccountRepository.Query().Where(acc => !acc.Deleted && acc.IsClientInfo && DbFunctions.TruncateTime(acc.DateFunded) <= DbFunctions.TruncateTime(period.ToDate)); query = SortAccountsInfoQuery(query, sorting); if (TradeUtils.IsSortingByMasterAccounts(idMasterAccounts)) { query = query.Where(acc => idMasterAccounts.Contains(acc.MasterAccountId)); } else if (TradeUtils.IsSortingByTradeAccounts(idTradeAccounts)) { query = query.Where(acc => idTradeAccounts.Contains(acc.Id)); } var accounts = query.Skip(pageSize * pageIndex).Take(pageSize).ToList(); result.Data = accounts.Select(acc => _mapper.Map <TradeAccountInfoGridViewModel>(acc)).ToList(); result.DataLength = query.Count(); return(result); }
public IEnumerable <MasterAccountGridVm> GetAllMasterAccountGridVm() { var accounts = _mapper.Map <List <MasterAccountGridVm> >(_masterAccountRepository.Query() .Where(acc => !acc.Deleted) .Include(acc => acc.UpdatedBy) .Include(acc => acc.CreatedBy).ToList()); accounts.ForEach(acc => acc.AmountTradeAccounts = _tradeAccountRepository.Query() .Include(a => a.MasterAccountId) .Count(a => a.MasterAccountId == acc.Id)); return(accounts); }