/// <summary> /// This method fetches the most recent 100 measurements for the selected part. Please have a look at the other properties inside /// the filter class to understand all possibilities of filtering. /// </summary> private async Task FetchMeasurements( PathInformation partPath ) { _MeasurementsListView.Items.Clear(); SimpleMeasurement[] _Measurements = new SimpleMeasurement[0]; try { LogMessage( "Fetching all last 100 measurements for part '{0}' from data service.", partPath ); var sw = System.Diagnostics.Stopwatch.StartNew(); _Measurements = ( await _RestDataServiceClient.GetMeasurements( partPath, new MeasurementFilterAttributes { LimitResult = 100 } ) ).ToArray(); sw.Stop(); LogMessage( "Successfully fetched {1} measurements from data service in {0} ms.\r\n", sw.ElapsedMilliseconds, _Measurements.Length ); } catch( Exception ex ) { LogMessage( "Error fetching measurements for part '{0}' from data service: '{1}'.\r\n", partPath, ex.Message ); } _MeasurementsListView.BeginUpdate(); foreach( var meas in _Measurements.OrderByDescending( p => p.Time ) ) { _MeasurementsListView.Items.Add( CreateListViewItem( meas ) ); } _MeasurementsListView.EndUpdate(); }
private ListViewItem CreateListViewItem( SimpleMeasurement measurement ) { var subItems = new[] { measurement.Time.ToLocalTime().ToString( CultureInfo.CurrentCulture ), measurement.LastModified.ToLocalTime().ToString( CultureInfo.CurrentCulture ), string.Format( "{0} attributes", measurement.Attributes.Length ) }; return new ListViewItem( subItems ) { Tag = measurement, ToolTipText = CreateAttributeTooltip( measurement ) }; }
/// <summary> /// Updates the specified measurements in the database. /// </summary> /// <param name="measurements">The measurements to update.</param> /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> public Task UpdateMeasurements( SimpleMeasurement[] measurements, CancellationToken cancellationToken = default(CancellationToken) ) { return Put( "measurements", measurements, cancellationToken ); }