/// <summary> /// This method fetches all parts from the data service. Please note that this behavior is not good practice. This is for /// demonstration purposes only: To be able to select any part and fetch measurements, values and additional data. The /// preferred way of fetching parts is to fetch them step by step as the user navigates deeper into the inspection plan tree. /// </summary> private async Task FetchAllParts() { _PartsListView.Items.Clear(); var parts = new InspectionPlanPart[ 0 ]; try { LogMessage( "Fetching all parts from data service." ); var sw = System.Diagnostics.Stopwatch.StartNew(); parts = ( await _RestDataServiceClient.GetParts( null, null, ushort.MaxValue ) ).ToArray(); sw.Stop(); LogMessage( "Successfully fetched {1} parts from data service in {0} ms.\r\n", sw.ElapsedMilliseconds, parts.Length ); } catch( Exception ex ) { LogMessage( "Error fetching all parts from data service: '{0}'.\r\n", ex.Message ); } _PartsListView.BeginUpdate(); foreach( var part in parts.OrderBy( p => p.Path.ToString() ) ) { _PartsListView.Items.Add( await CreateListViewItem( part ) ); } _PartsListView.EndUpdate(); }
public async void InitializeControl( Uri serverUri, Configuration configuration, CatalogCollection catalogs ) { _Configuration = configuration; _Catalogs = catalogs; _RestDataServiceClient = new DataServiceRestClient( serverUri ); _RestRawDataServiceClient = new RawDataServiceRestClient( serverUri ); var partPath = PathHelper.String2PartPathInformation( _PartTextBox.Text ); var parts = await _RestDataServiceClient.GetParts( partPath ); var partsArray = parts as InspectionPlanPart[] ?? parts.ToArray(); if( partsArray.Any() ) _CurrentPart = partsArray.First(); var chars = await _RestDataServiceClient.GetCharacteristics( partPath ); var charsArray = chars as InspectionPlanCharacteristic[] ?? chars.ToArray(); if( charsArray.Any() ) _CurrentCharacteristics = charsArray; FillRawDataListView(); }
/// <summary> /// This methods creates a new part as well as three characteristics below. /// </summary> private async void AddPartButtonClick( object sender, EventArgs e ) { LogMessage( "Creating inspection plan items" ); var sw = System.Diagnostics.Stopwatch.StartNew(); var partPath = PathHelper.String2PartPathInformation( _PartTextBox.Text ); var char1Path = GetCharPath( _Char1TextBox ); var char2Path = GetCharPath( _Char2TextBox ); var char3Path = GetCharPath( _Char3TextBox ); try { var part = new InspectionPlanPart { Path = partPath, Uuid = Guid.NewGuid() }; var char1 = new InspectionPlanCharacteristic { Path = char1Path, Uuid = Guid.NewGuid() }; var char2 = new InspectionPlanCharacteristic { Path = char2Path, Uuid = Guid.NewGuid() }; var char3 = new InspectionPlanCharacteristic { Path = char3Path, Uuid = Guid.NewGuid() }; var characteristics = new[] { char1, char2, char3 }; await _RestDataServiceClient.CreateParts( new[] { part } ); await _RestDataServiceClient.CreateCharacteristics( characteristics ); _CurrentPart = part; _CurrentCharacteristics = characteristics; _RawDataListView.Items.Clear(); sw.Stop(); LogMessage( "Succesfully created inspection plan items in {0} ms\r\n", sw.ElapsedMilliseconds ); } catch( Exception ex ) { LogMessage( String.Format( "Error creating part '{0}': '{1}'.\r\n", partPath, ex.Message ) ); _CurrentPart = null; _CurrentCharacteristics = null; } }
/// <summary> /// Updates the specified parts in the database. /// </summary> /// <param name="parts">The parts to update.</param> /// <param name="versioningEnabled">Specifies whether to create a new inspection plan version entry.</param> /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> public Task UpdateParts( InspectionPlanPart[] parts, bool versioningEnabled = false, CancellationToken cancellationToken = default(CancellationToken) ) { var parameter = ParameterDefinition.Create( "versioningEnabled", versioningEnabled.ToString() ); return Put( "parts", parts, cancellationToken, parameter ); }
/// <summary> /// Adds the specified parts to the database. /// </summary> /// <param name="parts">The parts to add.</param> /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> public Task CreateParts( InspectionPlanPart[] parts, CancellationToken cancellationToken = default(CancellationToken) ) { return Post( "parts", parts, cancellationToken ); }