Exemplo n.º 1
0
        public TotalAccountListModel FilterListData(TotalAccountListEnum elementNumber, string searchExpression, IEnumerable <long> idMasterAccounts, IEnumerable <long> idTradeAccounts)
        {
            var tradeAccounts = _tradeRepository.TradeAccountsQuery().Where(s => s.IsClientInfo == true);

            if (TradeUtils.IsSortingByTradeAccounts(idTradeAccounts.ToArray()))
            {
                tradeAccounts = tradeAccounts.Where(fee => idTradeAccounts.Contains(fee.Id));
            }
            else if (TradeUtils.IsSortingByMasterAccounts(idMasterAccounts.ToArray()))
            {
                tradeAccounts = tradeAccounts.Where(fee => idMasterAccounts.Contains(fee.MasterAccount.Id));
            }

            var listModel = RetriveListData(tradeAccounts, elementNumber);

            listModel.AccountTotalList = string.IsNullOrEmpty(searchExpression) ? listModel.AccountTotalList : listModel.AccountTotalList.Where(s => s.Key.ToLower().Contains(searchExpression.ToLower())).ToList();
            return(listModel);
        }
Exemplo n.º 2
0
        private TotalAccountListModel RetriveListData(IQueryable <TradeAccount> tradeAccounts, TotalAccountListEnum elementNumber)
        {
            var list = new List <KeyValuePair <string, long> >();

            switch (elementNumber)
            {
            case TotalAccountListEnum.CityList:
                list = tradeAccounts.Where(s => !string.IsNullOrEmpty(s.CityResidentialAddress)).GroupBy(s => s.CityResidentialAddress).Where(g => g.Count() > 1)
                       .ToDictionary(s => s.Key, g => (long)g.Count()).ToList();
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });

            case TotalAccountListEnum.CountryList:
                list = tradeAccounts.Where(s => !string.IsNullOrEmpty(s.StateResidentialAddress)).GroupBy(s => s.StateResidentialAddress).Where(g => g.Count() > 1)
                       .ToDictionary(s => s.Key, g => (long)g.Count()).ToList();
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });

            case TotalAccountListEnum.AccountCapabilitiesList:
                list = tradeAccounts.Where(s => !string.IsNullOrEmpty(s.AccountCapabilities)).GroupBy(s => s.AccountCapabilities).Where(g => g.Count() > 1)
                       .ToDictionary(s => s.Key, g => (long)g.Count()).ToList();
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });

            case TotalAccountListEnum.AccountTypeList:
                list = tradeAccounts.Where(s => !string.IsNullOrEmpty(s.AccountType)).GroupBy(s => s.AccountType).Where(g => g.Count() > 1)
                       .ToDictionary(s => s.Key, g => (long)g.Count()).ToList();
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });

            case TotalAccountListEnum.IbEntityList:
                list = tradeAccounts.Where(s => !string.IsNullOrEmpty(s.IbEntity)).GroupBy(s => s.IbEntity).Where(g => g.Count() > 1)
                       .ToDictionary(s => s.Key, g => (long)g.Count()).ToList();
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });

            case TotalAccountListEnum.BaseCurrencyList:
                list = tradeAccounts.Where(s => !string.IsNullOrEmpty(s.Currency)).GroupBy(s => s.Currency).Where(g => g.Count() > 1)
                       .ToDictionary(s => s.Key, g => (long)g.Count()).ToList();
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });

            default:
                return(new TotalAccountListModel {
                    Enum = elementNumber, AccountTotalList = list
                });
            }
        }