Exemple #1
0
        internal void ProcessSearchRequestMessage(Node messageFrom, SearchRequestInfo searchRequest)
        {
            lock (SeenSearchRequests) {
                if (SeenSearchRequests.ContainsKey(searchRequest.Id))
                {
                    return;                     // Ignore. We probably saw this same request from the same person
                                                // on multiple networks.
                }
                else
                {
                    // Store timestamp so we can cleanup the list later.
                    // XXX: Cleanup not implemented yet
                    SeenSearchRequests[searchRequest.Id] = DateTime.Now;
                }
            }

            SearchResultInfo reply = Core.FileSystem.SearchFiles(searchRequest.Query);

            reply.SearchId = searchRequest.Id;

            if (reply.Files.Length > 0 || reply.Directories.Length > 0)
            {
                network.SendSearchReply(messageFrom, reply);
            }
        }
Exemple #2
0
        public Message CreateSearchRequestMessage(int searchRequestId, string searchString, int page)
        {
            Message           p = new Message(network, MessageType.SearchRequest);
            SearchRequestInfo c = new SearchRequestInfo(searchRequestId, searchString, page);

            p.Content = c;
            return(p);
        }
Exemple #3
0
        public PluginPaginationResponse <DemoPluginRawData> GetDataForDemoList([FromBody] SearchRequestInfo <DemoPluginRawData> request)
        {
            if (request.Method == PluginRequestMethod.Update)
            {
                var updateRawData = request.RawData;
                if (updateRawData != null)
                {
                    var dbRawData = SampleDatas.FirstOrDefault(d => d.Id == updateRawData.Id);
                    if (dbRawData != null)
                    {
                        dbRawData.Name = updateRawData.Name;
                        dbRawData.Type = updateRawData.Type;
                    }

                    // update raw data here.
                }
            }
            else if (request.Method == PluginRequestMethod.Delete)
            {
                var deleteRawData = request.RawData;
                if (deleteRawData != null)
                {
                    if (SampleDatas.Any(d => d.Id == deleteRawData.Id))
                    {
                        // delete the raw data here.
                        SampleDatas.Remove(SampleDatas.First(d => d.Id == deleteRawData.Id));
                    }
                }
            }

            var keyword  = request.Keyword;
            var page     = request.Page;
            var pageSize = request.PageSize;

            IEnumerable <DemoPluginRawData> raws = SampleDatas;

            if (!string.IsNullOrEmpty(keyword))
            {
                raws = raws.Where(r => r.Name.Contains(keyword));
            }

            var total = raws.Count();

            raws = raws.Skip((page - 1) * pageSize).Take(pageSize);

            return(new PluginPaginationResponse <DemoPluginRawData>()
            {
                Page = page,
                PageSize = pageSize,
                Raws = raws.ToList(),
                Total = total
            });
        }
Exemple #4
0
        public async Task <PluginPaginationResponse <AccountEntity> > Post([FromBody] SearchRequestInfo <AccountEntity> request, CancellationToken token)
        {
            if (request.Method == PluginRequestMethod.Update)
            {
                var updateRawData = request.RawData;
                if (updateRawData != null)
                {
                    var filterDefinition = Builders <AccountEntity> .Filter.Where(e => e.Id == updateRawData.Id);

                    var updateDefinition = Builders <AccountEntity> .Update.Set(e => e.AccountStatus, updateRawData.AccountStatus);

                    await this.UCenterDatabase.Accounts.UpdateOneAsync(updateRawData, filterDefinition, updateDefinition, token);
                }
            }

            string keyword = request.Keyword;
            int    page    = request.Page;
            int    count   = request.PageSize;

            Expression <Func <AccountEntity, bool> > filter = null;

            if (!string.IsNullOrEmpty(keyword))
            {
                filter = a => a.AccountName.Contains(keyword) ||
                         a.Email.Contains(keyword) ||
                         a.Phone.Contains(keyword);
            }

            var total = await this.UCenterDatabase.Accounts.CountAsync(filter, token);

            IQueryable <AccountEntity> queryable = this.UCenterDatabase.Accounts.Collection.AsQueryable();

            if (filter != null)
            {
                queryable = queryable.Where(filter);
            }
            queryable = queryable.OrderByDescending(a => a.CreatedTime);

            var result = queryable.Skip((page - 1) * count).Take(count).ToList();

            // todo: add orderby support.
            var model = new PluginPaginationResponse <AccountEntity>
            {
                Page     = page,
                PageSize = count,
                Raws     = result,
                Total    = total
            };

            return(model);
        }
Exemple #5
0
        public async Task <PluginPaginationResponse <AppConfigurationEntity> > Post([FromBody] SearchRequestInfo <AppConfigurationEntity> request, CancellationToken token)
        {
            if (request.Method == PluginRequestMethod.Update)
            {
                var updateRawData = request.RawData;
                if (updateRawData != null)
                {
                    var filterDefinition = Builders <AppConfigurationEntity> .Filter.Where(e => e.Id == updateRawData.Id);

                    var updateDefinition = Builders <AppConfigurationEntity> .Update
                                           .Set(e => e.Configuration, updateRawData.Configuration);

                    await this.UCenterDatabase.AppConfigurations.UpdateOneAsync(updateRawData, filterDefinition, updateDefinition, token);
                }
            }

            string keyword = request.GetParameterValue <string>("keyword");
            int    page    = request.GetParameterValue <int>("page", 1);
            int    count   = request.GetParameterValue <int>("pageSize", 10);

            Expression <Func <AppConfigurationEntity, bool> > filter = null;

            if (!string.IsNullOrEmpty(keyword))
            {
                filter = a => a.Name.Contains(keyword);
            }

            var total = await this.UCenterDatabase.AppConfigurations.CountAsync(filter, token);

            IQueryable <AppConfigurationEntity> queryable = this.UCenterDatabase.AppConfigurations.Collection.AsQueryable();

            if (filter != null)
            {
                queryable = queryable.Where(filter);
            }

            var result = queryable.Skip((page - 1) * count).Take(count).ToList();

            // todo: add orderby support.
            var model = new PluginPaginationResponse <AppConfigurationEntity>
            {
                Page     = page,
                PageSize = count,
                Raws     = result,
                Total    = total
            };

            return(model);
        }
Exemple #6
0
        public async Task <PluginPaginationResponse <ExceptionEventEntity> > Post([FromBody] SearchRequestInfo <ExceptionEventEntity> request, CancellationToken token)
        {
            if (request.Method == PluginRequestMethod.Delete)
            {
                var deleteRawData = request.RawData;
                if (deleteRawData != null)
                {
                    await this.UCenterEventDatabase.ExceptionEvents.DeleteAsync(
                        v => v.Id == deleteRawData.Id, token);
                }
            }

            string keyword = request.GetParameterValue <string>("keyword");
            int    page    = request.GetParameterValue <int>("page", 1);
            int    count   = request.GetParameterValue <int>("pageSize", 10);

            Expression <Func <ExceptionEventEntity, bool> > filter = null;

            if (!string.IsNullOrEmpty(keyword))
            {
                filter = a => a.Message.Contains(keyword);
            }

            var total = await this.UCenterEventDatabase.ExceptionEvents.CountAsync(filter, token);

            IQueryable <ExceptionEventEntity> queryable = this.UCenterEventDatabase.ExceptionEvents.Collection.AsQueryable();

            if (filter != null)
            {
                queryable = queryable.Where(filter);
            }
            queryable = queryable.OrderByDescending(e => e.CreatedTime);

            var result = queryable.Skip((page - 1) * count).Take(count).ToList();

            // todo: add orderby support.
            var model = new PluginPaginationResponse <ExceptionEventEntity>
            {
                Page     = page,
                PageSize = count,
                Raws     = result,
                Total    = total
            };

            return(model);
        }