Ejemplo n.º 1
0
        /// <summary>
        /// Checks if a type is an Energistics Data Object in the specific family version.
        /// </summary>
        /// <param name="type">The type to check.</param>
        /// <param name="standardFamily">The standard family.</param>
        /// <param name="dataSchemaVersion">The data schema version.</param>
        /// <returns></returns>
        public static bool IsDataObjectType(Type type, StandardFamily standardFamily, Version dataSchemaVersion)
        {
            var edo = type.GetCustomAttribute<EnergisticsDataObjectAttribute>();
            var isEdo = edo != null && edo.StandardFamily == standardFamily && edo.DataSchemaVersion == dataSchemaVersion;

            return isEdo;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the available data schema versions for the specified standard family.
        /// </summary>
        /// <param name="standardFamily">The standard family to get data schema versions for.</param>
        /// <returns>The data schema versions for the standard family.</returns>
        /// <exception cref="ArgumentException"><paramref name="standardFamily"/> is not an available standard family.</exception>
        public static IEnumerable <Version> GetDataSchemaVersions(StandardFamily standardFamily)
        {
            if (!IsAvailableStandardFamily(standardFamily))
            {
                throw new ArgumentException(@"Standard family not available", nameof(standardFamily));
            }

            return(FamilyVersions[standardFamily]);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets the list of all types in the DevKit that are Energistics Data Objects in the specified standard family and data schema version.
        /// </summary>
        /// <param name="standardFamily">The specified standard family.</param>
        /// <param name="dataSchemaVersion">The specified data schema version.</param>
        /// <returns></returns>
        public static IEnumerable <Type> GetAllDataObjectTypes(StandardFamily standardFamily, Version dataSchemaVersion)
        {
            Assembly devKit = Assembly.GetAssembly(typeof(StandardFamily));

            return(devKit.GetTypes().Where(t =>
            {
                var edo = t.GetCustomAttribute <EnergisticsDataObjectAttribute>();
                return edo != null && edo.StandardFamily == standardFamily && edo.DataSchemaVersion == dataSchemaVersion;
            }));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Checks if the requested data schema version is present in the specified standard family.
        /// </summary>
        /// <param name="standardFamily">The standard family.</param>
        /// <param name="dataSchemaVersion">The data schema version to check.</param>
        /// <returns>True if the standard family is present; false otherwise.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="dataSchemaVersion"/> is null.</exception>
        public static bool IsAvailableDataSchemaVersion(StandardFamily standardFamily, Version dataSchemaVersion)
        {
            dataSchemaVersion.NotNull(nameof(dataSchemaVersion));

            if (!IsAvailableStandardFamily(standardFamily))
            {
                return(false);
            }

            return(FamilyVersions[standardFamily].Contains(dataSchemaVersion));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Create a new <see cref="FamilyVersion"/> instance with the specified standard family and data schema version.
        /// </summary>
        /// <param name="standardFamily"></param>
        /// <param name="dataSchemaVersion"></param>
        /// <exception cref="ArgumentNullException"><paramref name="dataSchemaVersion"/> is null.</exception>
        /// <exception cref="ArgumentException"><paramref name="standardFamily"/> is not an available standard family or <paramref name="dataSchemaVersion"/>
        /// is not an available data schema version for the standard family.</exception>
        public FamilyVersion(StandardFamily standardFamily, Version dataSchemaVersion)
        {
            dataSchemaVersion.NotNull(nameof(dataSchemaVersion));
            if (!IsAvailableStandardFamily(standardFamily))
            {
                throw new ArgumentException(@"Standard family not available", nameof(standardFamily));
            }
            if (!IsAvailableDataSchemaVersion(standardFamily, dataSchemaVersion))
            {
                throw new ArgumentException($"Data schema version not available for {standardFamily.ToString()}", nameof(dataSchemaVersion));
            }

            StandardFamily    = standardFamily;
            DataSchemaVersion = dataSchemaVersion;
        }
        /// <summary>
        /// Gets the default model for the specified standard family.
        /// </summary>
        /// <param name="standardFamily">The standard family to get the default model for.</param>
        private void SetModelToDefault(StandardFamily standardFamily)
        {
            Version dataSchemaVersion = FamilyVersion.GetDataSchemaVersions(standardFamily).First();

            FamilyVersion = new FamilyVersion(standardFamily, dataSchemaVersion);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Gets the list of all types in the DevKit that are Energistics Data Objects in the specified standard family and data schema version.
 /// </summary>
 /// <param name="standardFamily">The specified standard family.</param>
 /// <param name="dataSchemaVersion">The specified data schema version.</param>
 /// <returns></returns>
 public static IEnumerable<Type> GetAllDataObjectTypes(StandardFamily standardFamily, Version dataSchemaVersion)
 {
     return GetAllDataObjectTypes().Where(t => IsDataObjectType(t, standardFamily, dataSchemaVersion));
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Checks if the requested standard family is present.
        /// </summary>
        /// <param name="standardFamily">The standard family to check.</param>
        /// <returns>True if the standard family is present; false otherwise.</returns>
        public static bool IsAvailableStandardFamily(StandardFamily standardFamily)
        {
            InitFamilyVersions();

            return(FamilyVersions.ContainsKey(standardFamily));
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Create a new EnergisticsDataObject attribute with the specified standard and data schema version.
 /// </summary>
 /// <param name="standardFamily">The standard family the attributed object is defined in</param>
 /// <param name="dataSchemaVersion">The data schema version of the attributed object</param>
 public EnergisticsDataObjectAttribute(StandardFamily standardFamily, string dataSchemaVersion)
 {
     StandardFamily    = standardFamily;
     DataSchemaVersion = new Version(dataSchemaVersion);
 }