예제 #1
0
        public static void CheckAttribute(DataServiceRestClient client, EntityDto entity, ushort key, string description,
                                          AttributeTypeDto type)
        {
            var configuration = client.GetConfiguration().Result;
            var definition    = configuration.GetDefinition(key);

            if (definition == null)
            {
                client.CreateAttributeDefinition(entity, new AttributeDefinitionDto
                {
                    Key         = key,
                    Description = description,
                    Type        = type
                });
            }
            else if (configuration.GetTypeForKey(key) != entity || definition.Description != description ||
                     (definition as AttributeDefinitionDto)?.Type != type)
            {
                //Don't do this, in case the PiWeb database is already in use. Changing the configuration will cause data-loss!!!
                client.UpdateAttributeDefinitions(entity, new AbstractAttributeDefinitionDto[]
                {
                    new AttributeDefinitionDto
                    {
                        Key         = key,
                        Description = description,
                        Type        = type
                    }
                });
            }
        }
예제 #2
0
        public static void CheckCatalogAttribute(DataServiceRestClient client, EntityDto entity, ushort key, string description,
                                                 Guid catalog)
        {
            var configuration = client.GetConfiguration().Result;
            var definition    = configuration.GetDefinition(key);

            if (definition == null)
            {
                client.CreateAttributeDefinition(entity, new CatalogAttributeDefinitionDto
                {
                    Key         = key,
                    Description = description,
                    Catalog     = catalog
                });
            }
            else if (configuration.GetTypeForKey(key) != entity || definition.Description != description ||
                     (definition as CatalogAttributeDefinitionDto)?.Catalog != catalog)
            {
                client.UpdateAttributeDefinitions(entity, new AbstractAttributeDefinitionDto[]
                {
                    new CatalogAttributeDefinitionDto
                    {
                        Key         = key,
                        Description = description,
                        Catalog     = catalog
                    }
                });
            }
        }
예제 #3
0
        /// <summary>
        ///     Shows how to work with the attribute configuration.
        /// </summary>
        /// <param name="client">The client.</param>
        public static async Task Lesson(DataServiceRestClient client)
        {
            //Create attributes
            await client.CreateAttributeDefinition(Entity.Part, AttributeDefinition);

            //This will create an attribute which can be used by catalogs. Don't be confused, this is no catalog attribute
            await client.CreateAttributeDefinition(Entity.Catalog, CatalogColumnAttributeDefinition);

            //Create a catalog which we can use for our catalog attribute
            await client.CreateCatalogs(new[] { Catalog });

            //Create the catalog attribute definition.
            await client.CreateAttributeDefinition(Entity.Part, CatalogAttributeDefinition);

            //Notes: - you can't create catalog attributes for catalogs (Entity.Catalog)
            //Notes: - you must obey the shown order of commands!

            //You can update everything except the key, which is the identifier.
            //To change the key, you must delete and recreate the attribute, but be aware: all data stored for this attribute will be lost!
            CatalogAttributeDefinition.Description = "Characteristic catalog attribute";
            await client.UpdateAttributeDefinitions(Entity.Characteristic, new[] { CatalogAttributeDefinition });

            //Get all attributes
            var configuration = await client.GetConfiguration();

            //Attributes are assigned to an entity: part, characteristic, measurement, value or catalog.
            Console.WriteLine($"Attributes for part: {configuration.PartAttributes.Length}");
            Console.WriteLine($"Attributes for characteristic: {configuration.CharacteristicAttributes.Length}");
            Console.WriteLine($"Attributes for measurement: {configuration.MeasurementAttributes.Length}");
            Console.WriteLine($"Attributes for value: {configuration.ValueAttributes.Length}");
            Console.WriteLine($"Attributes for catalog: {configuration.CatalogAttributes.Length}");
        }