Exemple #1
0
        public async Task <List <ConfigurationItemListDTO> > GetConfigurationItemListAsync(QueryConfigurationItemFilterModel filterModel)
        {
            Expression <Func <ConfigurationItem, bool> > searchExpression = filterModel.GetSearchExpression <ConfigurationItem>();

            if (filterModel.NamespaceNames != null && filterModel.NamespaceNames.Length > 0)
            {
                Expression <Func <ConfigurationItem, bool> > temp = null;
                foreach (string namespaceName in filterModel.NamespaceNames)
                {
                    temp = temp == null ? m => m.NamespaceName.Equals(namespaceName) : temp.Or(m => m.NamespaceName.Equals(namespaceName));
                }
                searchExpression = searchExpression.And(temp);
            }
            ConfigCenterEnvironmentConsoleHelper.WriteLine("拼接条件完毕", "Debug", ConsoleColor.DarkGreen);
            List <ConfigurationItem> allConfigurationItems = await _configurationItemRepository.GetAllInfoFromCacheAsync();

            ConfigCenterEnvironmentConsoleHelper.WriteLine(allConfigurationItems == null ? "以从环境获取数据,但为空" : $"以从环境获取数据,数量:{allConfigurationItems.Count}", "Debug",
                                                           ConsoleColor.DarkGreen);
            if (allConfigurationItems == null)
            {
                return(null);
            }
            List <ConfigurationItem> configurationItemsFromDb = allConfigurationItems.Where(searchExpression.Compile()).OrderBy(m => m.Key).ToList();

            ConfigCenterEnvironmentConsoleHelper.WriteLine($"已通过条件筛选完毕,数量:{configurationItemsFromDb.Count}", "Debug", ConsoleColor.DarkGreen);
            var result = _mapper.Map <List <ConfigurationItemListDTO> >(configurationItemsFromDb);

            return(result);
        }
Exemple #2
0
        public async Task <List <ConfigurationItemListDTO> > GetConfigurationItemListAsync(QueryConfigurationItemFilterModel filterModel)
        {
            Expression <Func <ConfigurationItem, bool> > searchExpression = filterModel.GetSearchExpression <ConfigurationItem>();

            if (filterModel.NamespaceNames != null && filterModel.NamespaceNames.Length > 0)
            {
                Expression <Func <ConfigurationItem, bool> > temp = null;
                foreach (string namespaceName in filterModel.NamespaceNames)
                {
                    temp = temp == null ? m => m.NamespaceName.Equals(namespaceName) : temp.Or(m => m.NamespaceName.Equals(namespaceName));
                }
                searchExpression = searchExpression.And(temp);
            }
            List <ConfigurationItem> allConfigurationItems = await _configurationItemRepository.GetAllInfoFromCacheAsync();

            List <ConfigurationItem> configurationItemsFromDb = allConfigurationItems.Where(searchExpression.Compile()).OrderBy(m => m.Key).ToList();
            var result = _mapper.Map <List <ConfigurationItemListDTO> >(configurationItemsFromDb);

            return(result);
        }