Esempio n. 1
0
        /// <summary>
        /// Open an existing Template.
        /// </summary>
        /// <param name="path">Location of the Template, in the file system.</param>
        /// <returns>The Threat Model representing the Template.</returns>
        public static IThreatModel OpenTemplate([Required] string path)
        {
            var package = new Package(path);
            var bytes   = package.Read(Resources.ThreatModelTemplateFile);

            return(ThreatModelManager.Deserialize(bytes, true));
        }
Esempio n. 2
0
        /// <summary>
        /// Open an existing Template.
        /// </summary>
        /// <param name="path">Location of the Template, in the file system.</param>
        /// <returns>The Threat Model representing the Template.</returns>
        public static IThreatModel OpenTemplate([Required] string path)
        {
            IThreatModel result = null;

            byte[] bytes;
            var    extension = Path.GetExtension(path)?.ToLower();

            switch (extension)
            {
            case ".tmt":
                var package = new Package(path);
                bytes = package.Read(Resources.ThreatModelTemplateFile);
                break;

            case ".tmk":
                using (var file = File.OpenRead(path))
                {
                    using (var ms = new MemoryStream())
                    {
                        file.CopyTo(ms);
                        bytes = ms.ToArray();
                    }
                }
                break;

            default:
                bytes = null;
                break;
            }

            if (bytes != null)
            {
                result = ThreatModelManager.Deserialize(bytes, true);
            }

            return(result);
        }