Exemple #1
0
        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);
        }