private async void OnSaveClicked(object sender, RoutedEventArgs e) { SkeletonViewModel vm = this.DataContext as SkeletonViewModel; IViewService viewService = Services.Get <IViewService>(); PoseFile.Groups groups = await viewService.ShowDialog <BoneGroupsSelectorDialog, PoseFile.Groups>("Save Pose..."); if (groups == PoseFile.Groups.None) { return; } IFileService fileService = Services.Get <IFileService>(); PoseFile file = new PoseFile(); file.Read(vm.Bones, groups); await fileService.SaveAs(file); }
private async void OnOpenClicked(object sender, RoutedEventArgs e) { SkeletonViewModel vm = this.DataContext as SkeletonViewModel; try { IFileService fileService = Services.Get <IFileService>(); FileBase file = await fileService.OpenAny(PoseFile.FileType, LegacyPoseFile.FileType); if (file == null) { return; } if (file is LegacyPoseFile legacyFile) { file = legacyFile.Upgrade(vm.Race); } IViewService viewService = Services.Get <IViewService>(); PoseFile.Groups groups = await viewService.ShowDialog <BoneGroupsSelectorDialog, PoseFile.Groups>("Load Pose..."); if (groups == PoseFile.Groups.None) { return; } if (file is PoseFile poseFile) { await poseFile.Write(vm, groups); } } catch (Exception ex) { Log.Write(ex, "Pose", Log.Severity.Error); } }