Esempio n. 1
0
        /// <summary>
        /// Deserialize MaterialDatabase from embedded resource.
        /// </summary>
        private static MaterialDatabase DeserializeResource(string countryCode)
        {
            XmlSerializer deserializer = new XmlSerializer(typeof(MaterialDatabase));

            Assembly assembly = Assembly.GetExecutingAssembly();

            foreach (string resourceName in assembly.GetManifestResourceNames())
            {
                if (resourceName.EndsWith("materials_" + countryCode + ".struxml"))
                {
                    using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                    {
                        TextReader       reader           = new StreamReader(stream);
                        object           obj              = deserializer.Deserialize(reader);
                        MaterialDatabase materialDatabase = (MaterialDatabase)obj;
                        reader.Close();

                        if (materialDatabase.Materials.Material.Count == 0)
                        {
                            throw new System.ArgumentException("The project was compiled without any materials. Add materials to your project and re-compile or use another method to construct the material database (i.e DeserializeStruxml).");
                        }

                        return(materialDatabase);
                    }
                }
            }
            throw new System.ArgumentException("Material library resource not in assembly! Was project compiled without embedded resources?");
        }
Esempio n. 2
0
        /// <summary>
        /// Load a custom MaterialDatabase from a .struxml file.
        /// </summary>
        /// <param name="filePath">File path to .struxml file.</param>
        /// <returns></returns>
        public static MaterialDatabase DeserializeStruxml(string filePath)
        {
            MaterialDatabase materialDatabase = MaterialDatabase.DeserializeFromFilePath(filePath);

            materialDatabase.End = "";
            return(materialDatabase);
        }
Esempio n. 3
0
        /// <summary>
        /// Load the default MaterialDatabase for each respective country.
        /// </summary>
        /// <remarks>Create</remarks>
        /// <param name="countryCode">National annex of calculation code (D/DK/EST/FIN/GB/H/N/PL/RO/S/TR)</param>
        /// <returns></returns>
        public static MaterialDatabase GetDefault(string countryCode = "S")
        {
            string           code             = RestrictedString.EurocodeType(countryCode);
            MaterialDatabase materialDatabase = MaterialDatabase.DeserializeResource(code);

            materialDatabase.End = "";
            return(materialDatabase);
        }
Esempio n. 4
0
        private static MaterialDatabase DeserializeFromFilePath(string filePath)
        {
            XmlSerializer    deserializer     = new XmlSerializer(typeof(MaterialDatabase));
            TextReader       reader           = new StreamReader(filePath);
            object           obj              = deserializer.Deserialize(reader);
            MaterialDatabase materialDatabase = (MaterialDatabase)obj;

            reader.Close();
            return(materialDatabase);
        }
Esempio n. 5
0
 public static Material GetMaterialByName(MaterialDatabase materialDatabase, string materialName)
 {
     return(materialDatabase.MaterialByName(materialName));
 }