Пример #1
0
        private IEnumerable <int> GetIdResults(ExecutionHint hint, int top, int skip, IEnumerable <SortInfo> sort,
                                               FilterStatus enableAutofilters, FilterStatus enableLifespanFilter, QueryExecutionMode executionMode)
        {
            if (SenseNet.ContentRepository.User.Current.Id == -1 && !this.IsSafe)
            {
                var ex = new InvalidOperationException("Cannot execute this query, please convert it to a safe query.");
                ex.Data.Add("EventId", EventId.Querying);
                ex.Data.Add("Query", this._text);

                throw ex;
            }

            if (IsNodeQuery)
            {
                using (var op = SnTrace.Query.StartOperation("NodeQuery: {0} | Top:{1} Skip:{2} Sort:{3} Mode:{4}", _text, _settings.Top, _settings.Skip, _settings.Sort, _settings.QueryExecutionMode))
                {
                    var result = GetIdResultsWithNodeQuery(hint, top, skip, sort, enableAutofilters, enableLifespanFilter, executionMode);
                    op.Successful = true;
                    return(result);
                }
            }
            if (IsContentQuery)
            {
                using (var op = SnTrace.Query.StartOperation("ContentQuery: {0} | Top:{1} Skip:{2} Sort:{3} Mode:{4}", this._text, _settings.Top, _settings.Skip, _settings.Sort, _settings.QueryExecutionMode))
                {
                    var result = GetIdResultsWithLucQuery(top, skip, sort, enableAutofilters, enableLifespanFilter, executionMode);
                    op.Successful = true;
                    return(result);
                }
            }

            throw new InvalidOperationException("Cannot execute query with null or empty Text");
        }
Пример #2
0
 public IPFilter(IPTarget ipTarget, FilterOperators fOperator, string filterByIp, FilterStatus status)
 {
     this._ipTarget     = ipTarget;
     this._operator     = fOperator;
     this._filterByIp   = filterByIp;
     this._filterStatus = status;
 }
Пример #3
0
        public FilterStatus GetStrongestFilterStatus()
        {
            if (_navigateBackward != null)
            {
                throw new InvalidOperationException();
            }

            if (_navigateForward == null)
            {
                return(_filterStatus);
            }

            FilterStatus strongestStatus = FilterStatus.ExcludeBlock;
            ICanAlign    next            = (ICanAlign)_navigateForward;

            while (next != null)
            {
                if (next.FilterStatus > strongestStatus)
                {
                    strongestStatus = next.FilterStatus;
                }

                next = (ICanAlign)next.NavigateForward;
            }

            return(strongestStatus);
        }
Пример #4
0
        private void Item_Click(object sender, EventArgs e)
        {
            ToolStripItem item         = sender as ToolStripItem;
            FilterStatus  filterStatus = item.Tag as FilterStatus;

            if (TryGetIObjectFilterView(filterStatus.StripDataEx.Grid, out IObjectFilterView <T> objectView))
            {
                if (filterStatus.GridFilter == null || filterStatus.GridFilter.Filter == null)
                {
                    objectView.RemoveFilter();
                    currentFilter = null;
                    return;
                }
                else
                {
                    if (currentFilter == filterStatus)
                    {
                        objectView.RemoveFilter();
                        currentFilter = null;
                    }
                    else
                    {
                        objectView.SetFilter(new ListFilterDescription <T> {
                            CompareObject = filterStatus.StripDataEx.ItemData,
                            FilterFunc    = filterStatus.GridFilter.Filter,
                            PropertyInfo  = filterStatus.StripDataEx.Getter
                        });
                        filterStatus.IsActive = true;
                        currentFilter         = filterStatus;
                    }
                }
            }
        }
 /// <summary>
 /// Добавление фильтра в коллекцию дочерних
 /// </summary>
 /// <param name="filterWrapper">Фильтр</param>
 /// <param name="filterStatus">Статус добавляемого фильтра</param>
 public void AddFilter(FilterWrapper filterWrapper, FilterStatus filterStatus)
 {
     filterWrapper.FilterStatus     = filterStatus;
     filterWrapper.PropertyChanged += FilterWrapperOnPropertyChanged;
     _filters.Add(filterWrapper);
     OnFilterAdded?.Invoke(this, EventArgs.Empty);
 }
Пример #6
0
 public IPFilter()
 {
     this._ipTarget     = IPTarget.DestinationIP;
     this._operator     = FilterOperators.Equal;
     this._filterByIp   = string.Empty;
     this._filterStatus = FilterStatus.NotConfirmed;
 }
Пример #7
0
        private FilterIdeaPassed GetFilterIdea(IdeaStatus ideaStatus, FilterStatus filterStatus, Guid userId)
        {
            var filterIdeaPassed = _filterIdeaPassedRepository.GetFilterIdea(ideaStatus.Id,
                                                                             filterStatus.Id,
                                                                             userId);

            return(filterIdeaPassed);
        }
Пример #8
0
        private ToolStripMenuItem CreateMenuitem(FilterStatus fs)
        {
            string            txt  = FormatDisplayString(fs);
            ToolStripMenuItem item = new ToolStripMenuItem(txt);

            item.Tag     = fs;
            item.Click  += Item_Click;
            item.Checked = fs.IsActive;
            return(item);
        }
Пример #9
0
        private ChallengeSelectionFilterDto InsertSelectionFilter(
            ChallengeSelectionFilterDto challengeSelectionFilterDto)
        {
            foreach (var filter in challengeSelectionFilterDto.Review)
            {
                var reviewFilter = new FilterStatus
                {
                    FilterId = filter.Id,
                    StatusId = Guid.Parse("11f4e235-bbee-4527-a88a-2d239aa91ee6"),
                    UserId   = Guid.Parse("5b7127e5-b581-4a87-bbdb-5312b9ded2cc")
                };
                _filterStatusRepository.Add(reviewFilter);
            }

            foreach (var filter in challengeSelectionFilterDto.Keep)
            {
                var keepFilter = new FilterStatus
                {
                    FilterId = filter.Id,
                    StatusId = Guid.Parse("6b2ac6fa-0895-448b-8016-70b26355b211"),
                    UserId   = Guid.Parse("5b7127e5-b581-4a87-bbdb-5312b9ded2cc")
                };
                _filterStatusRepository.Add(keepFilter);
            }

            foreach (var filter in challengeSelectionFilterDto.Kill)
            {
                var killFilter = new FilterStatus
                {
                    FilterId = filter.Id,
                    StatusId = Guid.Parse("e23a5191-5f41-4c00-b855-d87b14dc9180"),
                    UserId   = Guid.Parse("5b7127e5-b581-4a87-bbdb-5312b9ded2cc")
                };
                _filterStatusRepository.Add(killFilter);
            }

            foreach (var filter in challengeSelectionFilterDto.Multiply)
            {
                var multiplyFilter = new FilterStatus
                {
                    FilterId = filter.Id,
                    StatusId = Guid.Parse("410031b0-0975-4769-88fb-ef742e2f7702"),
                    UserId   = Guid.Parse("5b7127e5-b581-4a87-bbdb-5312b9ded2cc")
                };
                _filterStatusRepository.Add(multiplyFilter);
            }

            var challenge = _challengeRepository.GetById(challengeSelectionFilterDto.ChallengeId);

            if (challenge.ChallengeState == 5)
            {
                challenge.ChallengeState += 1;
            }
            return(challengeSelectionFilterDto);
        }
Пример #10
0
        private IEnumerable <int> GetIdResultsWithNodeQuery(ExecutionHint hint, int top, int skip, IEnumerable <SortInfo> sort,
                                                            FilterStatus enableAutofilters, FilterStatus enableLifespanFilter, QueryExecutionMode executionMode)
        {
            //TODO: QUICK: Process executionMode in GetIdResultsWithNodeQuery
            var queryText = LucQuery.IsAutofilterEnabled(enableAutofilters) ? AddAutofilterToNodeQuery(Text) : Text;

            if (LucQuery.IsLifespanFilterEnabled(enableLifespanFilter))
            {
                queryText = AddLifespanFilterToNodeQuery(queryText, GetLifespanFilterForNodeQuery());
            }

            NodeQuery query;

            try
            {
                query = NodeQuery.Parse(queryText);
            }
            catch (XmlException ex)
            {
                throw new InvalidContentQueryException(queryText, innerException: ex);
            }
            catch (InvalidOperationException ex)
            {
                throw new InvalidContentQueryException(queryText, innerException: ex);
            }

            if (skip != 0)
            {
                query.Skip = skip;
            }

            if (top != 0)
            {
                query.Top = top;
            }
            else
            if (query.Top == 0)
            {
                query.Top = GetDefaultMaxResults();
            }

            query.PageSize = query.Top;

            if (sort != null && sort.Count() > 0)
            {
                throw new NotSupportedException("Sorting override is not allowed on NodeQuery");
            }

            var result = query.Execute(hint);

            TotalCount = result.Count;

            return(result.Identifiers.ToList());
        }
Пример #11
0
        private string FormatDisplayString(FilterStatus fs)
        {
            string result = fs.GridFilter.DisplayString;

            if (fs.StripDataEx.HeaderText != null)
            {
                result = result.Replace("{HeaderText}", fs.StripDataEx.HeaderText);
            }
            result += fs.StripDataEx.ItemData == null ? "NULL" : fs.StripDataEx.ItemData.ToString();
            return(result);
        }
            public void then_should_return_parent_ignored_given_parent_filter_status_is_ignored_enum_values(FilterStatus parentFilterStatus)
            {
                // Arrange
                var reader = new StatusReader(new Mock<IAntRegexGenerator>().Object);

                // Act
                var status = reader.GetFilterStatus("C:\\Temp", "*", parentFilterStatus, "C:\\Temp");

                // Assert
                Assert.That(status, Is.EqualTo(FilterStatus.ParentIgnored));
            }
        public override string dumpToString()
        {
            string toRet = "";

            toRet += "Fan:    " + FanStatus.ToString();
            toRet += "\nLamp:   " + LampStatus.ToString();
            toRet += "\nTemp:   " + TempStatus.ToString();
            toRet += "\nCover:  " + CoverStatus.ToString();
            toRet += "\nFilter: " + FilterStatus.ToString();
            toRet += "\nOther:  " + OtherStatus.ToString();
            return(toRet);
        }
Пример #14
0
        private int ExecuteQueryWithCountOnly(LucQuery lucQuery, FilterStatus enableAutofilters, FilterStatus enableLifespanFilter)
        {
            lucQuery.CountOnly            = true;
            lucQuery.Top                  = 0;
            lucQuery.Skip                 = 0;
            lucQuery.SortFields           = null;
            lucQuery.EnableAutofilters    = enableAutofilters;
            lucQuery.EnableLifespanFilter = enableLifespanFilter;

            lucQuery.Execute();

            return(lucQuery.TotalCount);
        }
Пример #15
0
        //public List<string> jsonList = new List<string>();

        public FilterStatus Filter(Stream dataIn, out long dataInRead, Stream dataOut, out long dataOutWritten)
        {
            if (dataIn == null)
            {
                dataInRead     = 0;
                dataOutWritten = 0;

                return(FilterStatus.Done);
            }

            FilterStatus status = FilterStatus.Done;

            int count = 0;

            if (dataIn.Length <= dataOut.Length)
            {
                dataInRead     = dataIn.Length;
                dataOutWritten = dataIn.Length;
                dataIn.CopyTo(dataOut);

                count = (int)dataIn.Length;
            }
            else
            {
                // 参考 => https://github.com/cefsharp/CefSharp/issues/2066
                var data = new byte[dataOut.Length];
                dataIn.Seek(0, SeekOrigin.Begin);
                dataIn.Read(data, 0, data.Length);
                dataOut.Write(data, 0, data.Length);

                dataInRead     = dataOut.Length;
                dataOutWritten = dataOut.Length;

                status = FilterStatus.NeedMoreData;

                count = (int)dataOut.Length;
            }

            // 読み取り
            dataIn.Seek(0, SeekOrigin.Begin);
            using (var reader = new StreamReader(dataIn))
            {
                char[] c = new char[dataOut.Length];
                reader.Read(c, 0, count);
                string text = new string(c).Replace("\0", "");
                jsonStr += (text.StartsWith("svdata=")) ? text.Substring(7) : text;
                //jsonList.Add(text);
            }

            return(status);
        }
Пример #16
0
 protected void SetFilterStatus(FilterStatus status)
 {
     if (status == FilterStatus.Include)
     {
         if (_filterStatus > FilterStatus.Exclude)
         {
             _filterStatus = FilterStatus.Include;
         }
     }
     else
     {
         _filterStatus = status;
     }
 }
Пример #17
0
        public static bool IsAutofilterEnabled(FilterStatus value)
        {
            switch (value)
            {
            case FilterStatus.Default:
                return(EnableAutofilters_DefaultValue == FilterStatus.Enabled);

            case FilterStatus.Enabled:
                return(true);

            case FilterStatus.Disabled:
                return(false);

            default:
                throw new SnNotSupportedException("Unknown FilterStatus: " + value);
            }
        }
Пример #18
0
        public static bool IsLifespanFilterEnabled(FilterStatus value)
        {
            switch (value)
            {
            case FilterStatus.Default:
                return(EnableLifespanFilter_DefaultValue == FilterStatus.Enabled);

            case FilterStatus.Enabled:
                return(true);

            case FilterStatus.Disabled:
                return(false);

            default:
                throw new NotImplementedException("Unknown FilterStatus: " + value);
            }
        }
Пример #19
0
        private static bool IsLifespanFilterEnabled(FilterStatus value)
        {
            switch (value)
            {
            case FilterStatus.Default:
                return(EnableLifespanFilterDefaultValue == FilterStatus.Enabled);

            case FilterStatus.Enabled:
                return(true);

            case FilterStatus.Disabled:
                return(false);

            default:
                throw new ArgumentOutOfRangeException(nameof(value), value, null);
            }
        }
Пример #20
0
 public Color GetFilterColor(FilterStatus status)
 {
     Color theColor;
     switch (status)
     {
         case FilterStatus.Found:
             theColor = Color.FromArgb(255, 0, 255, 0);
             break;
         case FilterStatus.Ignored:
             theColor = Color.FromArgb(255, 255, 0, 0);
             break;
         default:
             theColor = Color.FromArgb(255, 255, 255, 0);
             break;
     }
     return theColor;
 }
Пример #21
0
        public OrganizacionListViewModel(OrganizacionLogic organizacionLogic,
                                         SectorLogic sectorLogic,
                                         RubroLogic rubroLogic,
                                         LocalidadLogic localidadLogic,
                                         TipoOrganizacionLogic tipoOrganizacionLogic)
        {
            this.organizacionLogic     = organizacionLogic;
            this.sectorLogic           = sectorLogic;
            this.rubroLogic            = rubroLogic;
            this.localidadLogic        = localidadLogic;
            this.tipoOrganizacionLogic = tipoOrganizacionLogic;

            OrganizacionesFilter = new FilterStatus();
            OrganizacionesFilter.Filter.UsuarioInti = (int)UsuarioIntiStatus.Todos;

            Organizaciones    = new ObservableCollection <OrganizacionData>();
            FiltersVisibility = Visibility.Visible;
            WindowTitle       = "Organizaciones";
        }
Пример #22
0
        public MainViewModel(OrganizacionLogic organizacionLogic,
                             SectorLogic sectorLogic,
                             RubroLogic rubroLogic,
                             LocalidadLogic localidadLogic,
                             TipoOrganizacionLogic tipoOrganizacionLogic)
        {
            this.organizacionLogic     = organizacionLogic;
            this.sectorLogic           = sectorLogic;
            this.localidadLogic        = localidadLogic;
            this.rubroLogic            = rubroLogic;
            this.tipoOrganizacionLogic = tipoOrganizacionLogic;

            UsuarioIntiStatuses = new ObservableCollection <IdAndValue>();

            var usuarioIntiStatus = new IdAndValue()
            {
                Id    = ((int)UsuarioIntiStatus.UsuarioInti),
                Value = EnumUtils.GetDescription(UsuarioIntiStatus.UsuarioInti)
            };

            var noUsuarioIntiStatus = new IdAndValue()
            {
                Id    = ((int)UsuarioIntiStatus.NoUsuarioInti),
                Value = EnumUtils.GetDescription(UsuarioIntiStatus.NoUsuarioInti)
            };

            var todosStatus = new IdAndValue()
            {
                Id    = ((int)UsuarioIntiStatus.Todos),
                Value = EnumUtils.GetDescription(UsuarioIntiStatus.Todos)
            };

            UsuarioIntiStatuses.Add(usuarioIntiStatus);
            UsuarioIntiStatuses.Add(noUsuarioIntiStatus);
            UsuarioIntiStatuses.Add(todosStatus);

            OrganizacionesFilter = new FilterStatus();

            Organizaciones = new ObservableCollection <OrganizacionHeaderData>();

            InitializationTask = UpdateOrganizacionHeaders();
        }
Пример #23
0
        private List<FilterResult> DepthFirstSearch(List<FilterResult> accumulator, string directory, int level, FilterStatus parentFilterStatus, string filter, string projectUri, bool filterRemoves, bool hideChildren, bool recursive)
        {
            if (hideChildren
                && (parentFilterStatus == FilterStatus.Ignored || parentFilterStatus == FilterStatus.ParentIgnored))
            {
                return accumulator;
            }
            var subDirectories = Directory.EnumerateDirectories(directory);
            var thisLevel = level + 1;
            foreach (var subDirectory in subDirectories)
            {
                var filterStatus = _statusReader.GetFilterStatus(subDirectory, filter, parentFilterStatus, projectUri, filterRemoves);
                accumulator.Add(
                    new FilterResult
                    {
                        FullPath = subDirectory,
                        RelativePath = (thisLevel == 1 ? "." : string.Empty) + subDirectory.Remove(0, directory.Length),
                        Level = thisLevel,
                        Status = filterStatus
                    });

                if (recursive)
                {
                    DepthFirstSearch(accumulator, subDirectory, thisLevel, filterStatus, filter, projectUri,
                        filterRemoves, hideChildren, recursive);
                }

            }
            var files = Directory.GetFiles(directory);
            foreach (var file in files)
            {
                accumulator.Add(
                    new FilterResult
                    {
                        FullPath = file,
                        RelativePath = file.Remove(0, directory.Length),
                        Level = thisLevel,
                        Status = _statusReader.GetFilterStatus(file, filter, parentFilterStatus, projectUri, filterRemoves)
                    });
            }
            return accumulator;
        }
Пример #24
0
        private List <ToolStripItem> CreateToolStripItems(StripDataEx stripDataEx)
        {
            List <ToolStripItem> tsList = new List <ToolStripItem>();

            if (currentFilter != null)
            {
                ToolStripMenuItem item = CreateMenuitem("Clear Filter", null, stripDataEx, true);
                tsList.Add(item);
                item = CreateMenuitem(currentFilter);
                tsList.Add(item);
            }

            if (stripDataEx.Getter != null)
            {
                List <GridFilter <T> > filterDescLst = new List <GridFilter <T> >();
                if (Filters.TryGetValue(stripDataEx.Getter, out List <GridFilter <T> > result))
                {
                    filterDescLst.AddRange(result);
                }
                if (filterDescLst.Count == 0)
                {
                    filterDescLst.Add(EqualFilter());
                }
                foreach (var filterdesc in filterDescLst)
                {
                    FilterStatus status = new FilterStatus {
                        GridFilter  = filterdesc,
                        StripDataEx = stripDataEx,
                        IsActive    = false
                    };
                    if (currentFilter == null ||
                        (currentFilter.GridFilter != status.GridFilter ||
                         currentFilter.StripDataEx.Getter != status.StripDataEx.Getter ||
                         currentFilter.StripDataEx.ItemData == status.StripDataEx.ItemData))
                    {
                        tsList.Add(CreateMenuitem(status));
                    }
                }
            }

            return(tsList);
        }
Пример #25
0
        private Tuple <SnQuery, string> CreateQueryAndPrepare(string queryText, FilterStatus autoFilters, FilterStatus lifespanFilter)
        {
            var parser  = new CqlParser();
            var context = new TestQueryContext(QuerySettings.AdminSettings, 1, _indexingInfo);
            var query   = new SnQuery
            {
                Querytext            = queryText,
                QueryTree            = parser.Parse(queryText, context).QueryTree,
                EnableAutofilters    = autoFilters,
                EnableLifespanFilter = lifespanFilter
            };

            SnQuery.PrepareQuery(query, context);

            var visitor = new SnQueryToStringVisitor();

            visitor.Visit(query.QueryTree);

            return(new Tuple <SnQuery, string>(query, visitor.Output));
        }
Пример #26
0
        private IEnumerable <int> GetIdResults(ExecutionHint hint, int top, int skip, IEnumerable <SortInfo> sort,
                                               FilterStatus enableAutofilters, FilterStatus enableLifespanFilter)
        {
            if (ContentRepository.User.Current.Id == -1 && !this.IsSafe)
            {
                var ex = new InvalidOperationException("Cannot execute this query.");
                ex.Data.Add("EventId", ContentRepository.EventId.Querying.CannotExecuteQuery);
                ex.Data.Add("Query", this._text);
                //Diagnostics.Logger.WriteError(ContentRepository.EventId.Error.CannotExecuteQuery, ex);
                throw ex;
            }

            if (IsNodeQuery)
            {
#if QUERY
                var op = DetailedLogger.CreateOperation();                                                                     // category: QUERY
                DetailedLogger.Log(op, "NodeQuery {0} | Top:{1} Skip:{2} Sort:{3}", this._text, _settings.Top, _settings.Skip, // category: QUERY
                                   _settings.Sort == null ? "" : String.Join(",", _settings.Sort.Select(s => s.FieldName + (s.Reverse ? " ASC" : " DESC"))));
#endif
                var result = GetIdResultsWithNodeQuery(hint, top, skip, sort, enableAutofilters, enableLifespanFilter);
#if QUERY
                op.Finish();
#endif
                return(result);
            }
            if (IsContentQuery)
            {
#if QUERY
                var op = DetailedLogger.CreateOperation();                                                                        // category: QUERY
                DetailedLogger.Log(op, "ContentQuery {0} | Top:{1} Skip:{2} Sort:{3}", this._text, _settings.Top, _settings.Skip, // category: QUERY
                                   _settings.Sort == null ? "" : String.Join(",", _settings.Sort.Select(s => s.FieldName + (s.Reverse ? " ASC" : " DESC"))));
#endif
                var result = GetIdResultsWithLucQuery(top, skip, sort, enableAutofilters, enableLifespanFilter);
#if QUERY
                op.Finish();
#endif
                return(result);
            }

            throw new InvalidOperationException("Cannot execute query with null or empty Text");
        }
Пример #27
0
 public FilterStatus GetFilterStatus(string directory, string filter, FilterStatus parentFilterStatus, string projectUri, bool filterRemoves = false)
 {
     if (parentFilterStatus != FilterStatus.Ignored && parentFilterStatus != FilterStatus.ParentIgnored)
     {
         filter = filter.Replace("\\", "\\\\");
         var regex = _antRegexGenerator.GetRegexForFilter(filter);
         var tempDirectory = directory.Remove(0, projectUri.Length);
         if (filterRemoves)
         {
             return regex.IsMatch(tempDirectory) ? FilterStatus.Ignored : FilterStatus.Found;
         }
         else
         {
             return regex.IsMatch(tempDirectory) ? FilterStatus.Found : FilterStatus.Ignored;
         }
     }
     else
     {
         return FilterStatus.ParentIgnored;
     }
 }
Пример #28
0
        public override void SetProperty(string name, object value)
        {
            switch (name)
            {
            case "Query":
                this.Query = (string)value;
                break;

            case "EnableAutofilters":
                this.EnableAutofilters = (FilterStatus)value;
                break;

            case "EnableLifespanFilter":
                this.EnableLifespanFilter = (FilterStatus)value;
                break;

            default:
                base.SetProperty(name, value);
                break;
            }
        }
Пример #29
0
        private IEnumerable <int> GetIdResults(ExecutionHint hint, int top, int skip, IEnumerable <SortInfo> sort,
                                               FilterStatus enableAutofilters, FilterStatus enableLifespanFilter)
        {
            if (SenseNet.ContentRepository.User.Current.Id == -1 && !this.IsSafe)
            {
                var ex = new InvalidOperationException("Cannot execute this query.");
                ex.Data.Add("EventId", SenseNet.ContentRepository.EventId.Querying.CannotExecuteQuery);
                ex.Data.Add("Query", this._text);
                //SenseNet.Diagnostics.Logger.WriteError(SenseNet.ContentRepository.EventId.Error.CannotExecuteQuery, ex);
                throw ex;
            }

            if (IsNodeQuery)
            {
                return(GetIdResultsWithNodeQuery(hint, top, skip, sort, enableAutofilters, enableLifespanFilter));
            }
            if (IsContentQuery)
            {
                return(GetIdResultsWithLucQuery(top, skip, sort, enableAutofilters, enableLifespanFilter));
            }

            throw new InvalidOperationException("Cannot execute query with null or empty Text");
        }
Пример #30
0
 /// <summary>
 /// Constructs a new FilterStatusMessage instance. Do not use this constructor for cooldown
 /// status. Use the constructor that accepts a TimeSpan parameter.
 /// </summary>
 /// <param name="status">
 /// The status of the filter.
 /// </param>
 public FilterStatusMessage(FilterStatus status)
 {
     Status           = status;
     CooldownDuration = TimeSpan.Zero;
 }
Пример #31
0
 public List<FilterResult> StartSearch(string directory, FilterStatus parentFilterStatus, string filter, bool filterRemoves, bool hideChildren = false, bool recursive = true)
 {
     return DepthFirstSearch(new List<FilterResult>(), directory, 0, parentFilterStatus, filter, directory, filterRemoves, hideChildren, recursive);
 }
Пример #32
0
        private string CheckQueryObject(string src, string qstring, string qqstring, FilterStatus autofilters, FilterStatus lifespan, int?top, int?skip, bool?countOnly, params string[] sortnames)
        {
            var query = LucQuery.Parse(src);

            var realqstring     = query.ToString();
            var realqqstring    = query.Query.ToString();
            var realtop         = query.Top;
            var realskip        = query.Skip;
            var realCountOnly   = query.CountOnly;
            var sortcount       = query.HasSort ? query.SortFields.Length : 0;
            var realsortnames   = new string[sortcount];
            var realautofilters = query.EnableAutofilters;
            var reallifespan    = query.EnableLifespanFilter;

            for (int i = 0; i < sortcount; i++)
            {
                if (i + 1 <= sortcount)
                {
                    var name    = query.SortFields[i].GetField();
                    var reverse = query.SortFields[i].GetReverse();
                    realsortnames[i] = (reverse ? "-" : "+") + name;
                }
            }
            var msg = new StringBuilder();

            if (qstring != null)
            {
                if (qstring != realqstring)
                {
                    msg.Append("qstring='").Append(realqstring).Append("' expected='").Append(qstring).AppendLine("'");
                }
            }
            if (qqstring != null)
            {
                if (qqstring != realqqstring)
                {
                    msg.Append("qqstring='").Append(realqqstring).Append("' expected='").Append(qqstring).AppendLine("'");
                }
            }
            if (top != null)
            {
                if (top.Value != realtop)
                {
                    msg.Append("top=").Append(realtop).Append(" expected=").Append(top).AppendLine();
                }
            }
            if (skip != null)
            {
                if (skip.Value != realskip)
                {
                    msg.Append("skip=").Append(realskip).Append(" expected=").Append(skip).AppendLine();
                }
            }
            if (countOnly != null)
            {
                if (countOnly.Value != realCountOnly)
                {
                    msg.Append("countOnly=").Append(realCountOnly).Append(" expected=").Append(countOnly).AppendLine();
                }
            }
            var s  = String.Join(", ", sortnames);
            var ss = String.Join(", ", realsortnames);

            if (s != ss)
            {
                msg.Append("sortnames='").Append(ss).Append("' expected='").Append(s).AppendLine("'");
            }
            if (realautofilters != autofilters)
            {
                msg.Append("Autofilters='").Append(realautofilters).Append("' expected='").Append(autofilters).AppendLine("'");
            }
            if (reallifespan != lifespan)
            {
                msg.Append("Lifespan='").Append(reallifespan).Append("' expected='").Append(lifespan).AppendLine("'");
            }

            return(msg.Length == 0 ? null : msg.ToString());
        }
Пример #33
0
 public static bool IsLifespanFilterEnabled(FilterStatus value)
 {
     throw new InvalidOperationException();
 }
Пример #34
0
        /// <summary>
        /// Notifies clients of the supplied status change.
        /// </summary>
        /// <param name="status">
        /// The status to send to all clients.
        /// </param>
        public void NotifyStatus(FilterStatus status)
        {
            var msg = new FilterStatusMessage(status);

            PushMessage(msg);
        }
Пример #35
0
		public override void SetProperty(string name, object value)
		{
			switch (name)
			{
				case "Query":
					this.Query = (string)value;
					break;
                case "EnableAutofilters":
                    this.EnableAutofilters = (FilterStatus)value;
                    break;
                case "EnableLifespanFilter":
                    this.EnableLifespanFilter = (FilterStatus)value;
                    break;
				default:
					base.SetProperty(name, value);
					break;
			}
		}
Пример #36
0
 public FilterOptionViewModel(string displayText, string filterValue, FilterStatus tagStatus)
 {
     DisplayText = displayText;
     FilterValue = filterValue;
     TagStatus   = tagStatus;
 }