예제 #1
0
		/// <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();
		}
예제 #2
0
		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();
		}
예제 #3
0
		/// <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;
			}
		}
예제 #4
0
		/// <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 );
		}
예제 #5
0
		/// <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 );
		}