/// <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)); }
/// <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); }