예제 #1
0
        public async Task <int> UpdateFilesBatch(ObservableFileSystem fileSystem, int sensorId, int start, int rows, CancellationToken cancelToken = default(CancellationToken))
        {
            using (CbClient cbClient = new CbClient(this.ServerUri, this.ApiToken, false))
            {
                var queryForPidsResponse = await cbClient.HttpGetAsDynamicAsync(String.Format("/api/v1/process?start={0}&rows={1}&q=sensor_id:{2} and filemod_count:[1 TO *]&sort=start asc",
                                                                                              start, rows, sensorId));

                if (cancelToken.IsCancellationRequested)
                {
                    return(-1);
                }

                if (queryForPidsResponse.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new ApplicationException(String.Format("Could not get process batch for sensor id:{0}, start:{1}, rows:{2} - HTTP Code {3}",
                                                                 sensorId, start, rows, queryForPidsResponse.StatusCode));
                }
                else
                {
                    int resultCount = 0;
                    foreach (var result in queryForPidsResponse.Response.results)
                    {
                        var processId = result.id;
                        var segmentId = result.segment_id;

                        var queryForEventsResponse = await cbClient.HttpGetAsDynamicAsync(String.Format("/api/v1/process/{0}/{1}/event", processId, segmentId));

                        if (queryForEventsResponse.StatusCode != System.Net.HttpStatusCode.OK)
                        {
                            // do something
                        }
                        else
                        {
                            foreach (string evt in queryForEventsResponse.Response.process.filemod_complete)
                            {
                                var evtParts = evt.Split('|');
                                int type     = Convert.ToInt32(evtParts[0]);
                                fileSystem.AddFileSystemItem(evtParts[2], evtParts[1], type);
                            }
                        }
                        resultCount++;

                        if (cancelToken.IsCancellationRequested)
                        {
                            return(resultCount);
                        }
                    }

                    return(resultCount);
                }
            }
        }
예제 #2
0
        public async Task<int> UpdateFilesBatch(ObservableFileSystem fileSystem, int sensorId, int start, int rows, CancellationToken cancelToken = default(CancellationToken))
        {
            using (CbClient cbClient = new CbClient(this.ServerUri, this.ApiToken, false))
            {
                var queryForPidsResponse = await cbClient.HttpGetAsDynamicAsync(String.Format("/api/v1/process?start={0}&rows={1}&q=sensor_id:{2} and filemod_count:[1 TO *]&sort=start asc",
                    start, rows, sensorId));
                if (cancelToken.IsCancellationRequested)
                {
                    return -1;
                }

                if (queryForPidsResponse.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new ApplicationException(String.Format("Could not get process batch for sensor id:{0}, start:{1}, rows:{2} - HTTP Code {3}", 
                        sensorId, start, rows, queryForPidsResponse.StatusCode));
                }
                else
                {
                    int resultCount = 0;
                    foreach (var result in queryForPidsResponse.Response.results)
                    {
                        var processId = result.id;
                        var segmentId = result.segment_id;

                        var queryForEventsResponse = await cbClient.HttpGetAsDynamicAsync(String.Format("/api/v1/process/{0}/{1}/event", processId, segmentId));
                        if (queryForEventsResponse.StatusCode != System.Net.HttpStatusCode.OK)
                        {
                            // do something
                        }
                        else
                        {
                            foreach (string evt in queryForEventsResponse.Response.process.filemod_complete)
                            {
                                var evtParts = evt.Split('|');
                                int type = Convert.ToInt32(evtParts[0]);
                                fileSystem.AddFileSystemItem(evtParts[2], evtParts[1], type);
                            }
                        }
                        resultCount++;

                        if (cancelToken.IsCancellationRequested)
                        {
                            return resultCount;
                        }
                    }

                    return resultCount;
                }
            }
        }
예제 #3
0
        public static void PopulateTree(TreeView tree, ObservableFileSystem filesystem)
        {
            tree.Nodes.Clear();
            List <TreeNode> roots = new List <TreeNode>();

            roots.Add(tree.Nodes.Add("FilePathFolder"));
            //    roots.Add(tree.Nodes.Add("Items"));
            foreach (FilePathFolder item in filesystem)
            {
                if (item.Children.Count == roots.Count)
                {
                    roots.Add(roots[roots.Count - 1].LastNode);
                }
                roots[item.Children.Count].Nodes.Add(item.Name);
            }
        }
예제 #4
0
        public async Task <int> UpdateFilesBatch(ObservableFileSystem fileSystem, int sensorId, int start, int rows, CancellationToken cancelToken = default(CancellationToken))
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
            var client = new RestClient();

            client.BaseUrl = new System.Uri(iCrt_01.Properties.Resources.CBMasServer);
            var filereq = new RestRequest();

            filereq.AddHeader("X-Auth-Token", iCrt_01.Properties.Resources.CBApiKey);
            filereq.Resource = "/v1/process?start={start}&rows={rows}&q=sensor_id:{sensorID} and filemod_count:[1 TO *]&sort=start asc";
            filereq.AddParameter("start", start, ParameterType.UrlSegment);
            filereq.AddParameter("rows", rows, ParameterType.UrlSegment);
            filereq.AddParameter("sensorID", sensorId, ParameterType.UrlSegment);

            var queryForPidsResponse = client.Execute <CBResult>(filereq);

            if (cancelToken.IsCancellationRequested)
            {
                return(-1);
            }
            if (queryForPidsResponse.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new ApplicationException(String.Format("Could not get process batch for sensor id:{0}, start:{1}, rows:{2} - HTTP Code {3}",
                                                             sensorId, start, rows, queryForPidsResponse.StatusCode));
            }
            else
            {
                int resultCount = 0;
                foreach (var item in queryForPidsResponse.Data.results)
                {
                    RestSharp.RestResponse response = new RestSharp.RestResponse();
                    response.Content = item;
                    RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
                    var result = deserial.Deserialize <CBProcess>(response);

                    var processId = result.id;
                    var segmentId = result.segment_id;
                    var eventreq  = new RestRequest();
                    eventreq.AddHeader("X-Auth-Token", iCrt_01.Properties.Resources.CBApiKey);
                    eventreq.Resource = (String.Format("/v1/process/{0}/{1}/event", processId, segmentId));
                    var queryForEventsResponse = await client.ExecuteTaskAsync <CBResultProc>(eventreq, cancelToken);

                    if (queryForEventsResponse.StatusCode != System.Net.HttpStatusCode.OK)
                    {
                        // do something
                    }
                    else
                    {
                        foreach (var filemod in queryForEventsResponse.Data.process)
                        {
                            if (filemod.filemod_complete == null)
                            {
                                continue;
                            }
                            else
                            {
                                try
                                {
                                    foreach (string evt in filemod.filemod_complete)
                                    {
                                        var evtParts = evt.Split('|');
                                        int type     = Convert.ToInt32(evtParts[0]);
                                        fileSystem.AddFileSystemItem(evtParts[2], evtParts[1], type);
                                    }
                                }
                                catch
                                {
                                    continue;
                                }
                            }
                        }
                    }
                    resultCount++;

                    if (cancelToken.IsCancellationRequested)
                    {
                        return(resultCount);
                    }
                }

                return(resultCount);
            }
        }