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); } } }
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; } } }
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); } }