public void LoadFile(string fileName) { // BCFFile retFile = new BCFFile(); using (ZipFile z = ZipFile.Read(fileName)) { Regex r = new Regex(@"(?<guid>.*?)/(?<fname>.*)"); foreach (var zipentry in z) { string tFName = System.IO.Path.GetTempFileName(); var res = r.Match(zipentry.FileName); if (res.Success) { using (BinaryWriter writer = new BinaryWriter(File.Open(tFName, FileMode.Create))) { zipentry.Extract(writer.BaseStream); } string guid = res.Groups["guid"].Value; string fname = res.Groups["fname"].Value; if (!Instances.Where(x => x.Markup.Topic.Guid == guid).Any()) { Instances.Add(new BcfInstance(guid)); } BcfInstance inst = Instances.Where(x => x.Markup.Topic.Guid == guid).FirstOrDefault(); switch (fname.ToLowerInvariant()) { case MarkupFileName: inst.Markup = Markup.LoadFromFile(tFName); break; case ViewpointFileName: inst.VisualizationInfo = VisualizationInfo.LoadFromFile(tFName); break; case SnapshotFileName: var bi = new System.Windows.Media.Imaging.BitmapImage(); bi.BeginInit(); bi.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad; bi.UriSource = new Uri(tFName); bi.EndInit(); inst.SnapShot = bi; break; default: break; } File.Delete(tFName); } } } }
private void Visinfo_Load_Click(object sender, RoutedEventArgs e) { VisualizationInfo.LoadFromFile(Filename(@"viewpoint.bcfv")); }