コード例 #1
0
ファイル: FindTypeHandler.cs プロジェクト: acken/OpenIDE
        public void Handle(Guid clientID, CommandMessage message)
        {
            Logger.Write("arg count is " + message.Arguments.Count.ToString());
            if (message.Arguments.Count > 2 || message.Arguments.Count == 0)
                return;
            if (clientID == Guid.Empty)
                return;
            var limit = 0;
            if (message.Arguments.Count == 2) {
                Logger.Write("arg is " + message.Arguments[1]);
                int limitParam;
                if (!int.TryParse(message.Arguments[1], out limitParam))
                    return;
                if (limitParam <= 0)
                    return;
                limit = limitParam;
            }
            var sb = new StringBuilder();
            sb.Append(message.CorrelationID);
            var formatter = new CacheFormatter();
            List<IGrouping<string, ICodeReference>> result;
            Logger.Write("Taking " + limit.ToString());
            if (limit > 0)
                result = _cache.Find(message.Arguments[0], limit).GroupBy(x => x.File).ToList();
            else
                result = _cache.Find(message.Arguments[0]).GroupBy(x => x.File).ToList();

            result.ForEach(x => {
                sb.AppendLine(formatter.FormatFile(x.Key));
                x.ToList()
                    .ForEach(y => sb.AppendLine(formatter.Format(y)));
            });
            _endpoint.Send(sb.ToString(), clientID);
        }
コード例 #2
0
 public void Handle(Guid clientID, CommandMessage message)
 {
     if (clientID == Guid.Empty)
         return;
     var query = getQuery(message);
     var sb = new StringBuilder();
     sb.Append(message.CorrelationID);
     var formatter = new CacheFormatter();
     _cache.AllProjects()
         .Where(x => filter(x, query)).ToList()
         .ForEach(x => sb.AppendLine(formatter.Format(x)));
     _endpoint.Send(sb.ToString(), clientID);
 }
コード例 #3
0
 public void Handle(Guid clientID, CommandMessage message)
 {
     if (clientID == Guid.Empty)
         return;
     var query = getQuery(message);
     var sb = new StringBuilder();
     sb.Append(message.CorrelationID);
     if (query != null) {
         var formatter = new CacheFormatter();
         var matcher = new Func<string,string,bool>((a,b) => a == b);
         if (isWildCard(query))
             matcher = wildcardmatch;
         _cache.AllReferences()
             .Where(x => filter(x, query, matcher))
             .GroupBy(x => x.File).ToList()
             .ForEach(x =>
                 {
                     sb.AppendLine(formatter.FormatFile(x.Key));
                     x.ToList()
                         .ForEach(y => sb.AppendLine(formatter.Format(y)));
                 });
     }
     _endpoint.Send(sb.ToString(), clientID);
 }