コード例 #1
0
        public async Task <HttpResponseMessage> SaveApplicableDeviceFilter(string filterId, bool isMatched, [FromBody] dynamic method)
        {
            return(await GetServiceResponseAsync(async() =>
            {
                DeviceListFilter methodfilter = new DeviceListFilter();
                DeviceListFilter rawfilter = await _filterRepository.GetFilterAsync(filterId);
                string queryColumnName = GenerateQueryColumnName(method);
                var conjunctionClause = await this.GetConjunctionClause(filterId);

                if (isMatched)
                {
                    methodfilter.AdvancedClause = $"{conjunctionClause.CONDITION} {conjunctionClause.AND} is_defined({queryColumnName})";
                }
                else
                {
                    methodfilter.AdvancedClause = $"{conjunctionClause.CONDITION} {conjunctionClause.AND} NOT is_defined({queryColumnName})";
                }

                methodfilter.Id = Guid.NewGuid().ToString();
                methodfilter.Name = Infrastructure.Constants.UnnamedFilterName;
                methodfilter.IsAdvanced = true;
                methodfilter.IsTemporary = true;
                var savedfilter = await _filterRepository.SaveFilterAsync(methodfilter, false);

                return new { filterId = savedfilter.Id };
            }));
        }
コード例 #2
0
 private async Task <DeviceListFilter> GetFilterById(string filterId)
 {
     if (filterId == "*" || filterId == DeviceListFilterRepository.DefaultDeviceListFilter.Id)
     {
         //[WORKAROUND] No condition available for "All Devices"
         return(DeviceListFilterRepository.DefaultDeviceListFilter);
     }
     else
     {
         return(await _filterRepository.GetFilterAsync(filterId));
     }
 }
コード例 #3
0
        public async Task <Filter> GetFilterAsync(string filterId)
        {
            var filter = await _filterRepository.GetFilterAsync(filterId);

            if (filter == null)
            {
                throw new FilterNotFoundException(filterId);
            }
            var jobs = await _jobRepository.QueryByFilterIdAsync(filterId);

            return(new Filter(filter)
            {
                AssociatedJobsCount = jobs.Count()
            });
        }