// This example shows how to obtain a dictionary of OPC property values for an OPC item, and extract property values.
using System;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.DataAccess.Extensions;
using OpcLabs.EasyOpc.OperationModel;
namespace DocExamples.DataAccess._EasyDAClientExtension
{
    class GetPropertyValueDictionary
    {
        public static void Main1()
        {
            // Instantiate the client object.
            var client = new EasyDAClient();
            // Get dictionary of property values, for all well-known properties
            DAPropertyValueDictionary propertyValueDictionary;
            try
            {
                propertyValueDictionary = client.GetPropertyValueDictionary("", "OPCLabs.KitServer.2", "Simulation.Random");
            }
            catch (OpcException opcException)
            {
                Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message);
                return;
            }
            // Display some of the obtained property values
            // The production code should also check for the .Exception first, before getting .Value
            Console.WriteLine("propertyValueDictionary[DAPropertyId.AccessRights].Value: {0}",
                propertyValueDictionary[DAPropertyIds.AccessRights].Value);
            Console.WriteLine("propertyValueDictionary[DAPropertyId.DataType].Value: {0}",
                propertyValueDictionary[DAPropertyIds.DataType].Value);
            Console.WriteLine("propertyValueDictionary[DAPropertyId.Timestamp].Value: {0}",
                propertyValueDictionary[DAPropertyIds.Timestamp].Value);
        }
    }
}
	 
	
		' This example shows how to obtain a dictionary of OPC property values for an OPC item, and extract property values.
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.DataAccess.Extensions
Imports OpcLabs.EasyOpc.OperationModel
Namespace DocExamples.DataAccess._EasyDAClientExtension
    Friend Class GetPropertyValueDictionary
        Public Shared Sub Main1()
            Dim client = New EasyDAClient()
            ' Get dictionary of property values, for all well-known properties
            Dim propertyValueDictionary As DAPropertyValueDictionary
            Try
                propertyValueDictionary = client.GetPropertyValueDictionary("", "OPCLabs.KitServer.2", "Simulation.Random")
            Catch opcException As OpcException
                Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message)
                Exit Sub
            End Try
            ' Display some of the obtained property values
            ' The production code should also check for the .Exception first, before getting .Value
            Console.WriteLine("propertyValueDictionary[DAPropertyId.AccessRights].Value: {0}", propertyValueDictionary(DAPropertyIds.AccessRights).Value)
            Console.WriteLine("propertyValueDictionary[DAPropertyId.DataType].Value: {0}", propertyValueDictionary(DAPropertyIds.DataType).Value)
            Console.WriteLine("propertyValueDictionary[DAPropertyId.Timestamp].Value: {0}", propertyValueDictionary(DAPropertyIds.Timestamp).Value)
        End Sub
    End Class
End Namespace