private void toolStripButton1_Click(object sender, EventArgs e) { Demo.USTViewer.BarkUST bu = new Demo.USTViewer.BarkUST(); ObjectDeserializer <ProjectObject> DPO = new ObjectDeserializer <ProjectObject>(); BasicFileInformation bfi = DPO.ReadBasicInformation(bu.GetCacheFile()); if (bfi.SavePassword.Length > 0 || bfi.IntroduceText.Trim().Length > 0) { IntroduceSwap ISW = new IntroduceSwap(bfi); if (ISW.ShowDialog() != DialogResult.OK) { return; } } try { ProjectObject OOP = DPO.DeserializeFromFile(bu.GetCacheFile(), bfi, ObjectSerializer <ProjectObject> .SerializeType.JSON, true); LoadProject(ref OOP); } catch (Exception ew) { if (ew.Message == "Password Error or File Broken") { MessageBox.Show("密码错误!"); } else { MessageBox.Show("未知错误!"); } } }
public void SetupPassword(Form baseFrom = null) { BasicFileInformation bfi = new BasicFileInformation(); bfi.IntroduceText = projectObject.BasicData.IntroduceText; bfi.SavePassword = projectObject.BasicData.SavePassword; IntroduceSwap isw = new IntroduceSwap(bfi, true); if (isw.ShowDialog(baseFrom) == DialogResult.OK) { BasicFileInformation bnfi = isw.BasicFileInformation; if (bnfi.SavePassword == "" && projectObject.BasicData.SavePassword != "") { if (MessageBox.Show("您确认需要取消密码么?", "密码确认", MessageBoxButtons.YesNo) == DialogResult.No) { MessageBox.Show("修改取消!"); return; } } projectObject.BasicData.SavePassword = bnfi.SavePassword; projectObject.BasicData.IntroduceText = bnfi.IntroduceText; } }
public bool OpenProject(Form baseFrom = null) { FormSpaner.LockFrom(baseFrom); FormSpaner.SetFromProcess(0, "查找Chorista文件", baseFrom); OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Chorista工程(*.hymn)|*.hymn|全部文件(*.*)|*.*"; ofd.FilterIndex = 0; ofd.CheckFileExists = true; if (ofd.ShowDialog(baseFrom) == DialogResult.OK) { try { FormSpaner.SetFromProcess(10, "工程信息读取", baseFrom); ObjectDeserializer <ProjectObject> DPO = new ObjectDeserializer <ProjectObject>(); BasicFileInformation bfi = DPO.ReadBasicInformation(ofd.FileName); if (bfi.VersionString != BasicFileInformation.currentVersion) { MessageBox.Show("文件版本错误!请使用最新版本的文件转换助理进行版本转换!"); FormSpaner.UnLockFrom(baseFrom); return(false); } bool Logined = false; ProjectObject OOP = null; FormSpaner.SetFromProcess(30, "工程权限认证", baseFrom); while (!Logined) { bool havePwd = false; try { havePwd = (bfi.SavePassword.Length > 0 || bfi.IntroduceText.Trim().Length > 0); if (havePwd) { IntroduceSwap ISW = new IntroduceSwap(bfi); if (ISW.ShowDialog() != DialogResult.OK) { MessageBox.Show("用户已取消"); Logined = true; FormSpaner.UnLockFrom(baseFrom); return(false); } } OOP = DPO.DeserializeFromFile(ofd.FileName, bfi, ObjectSerializer <ProjectObject> .SerializeType.JSON, true); OOP.BasicData.ProjectFilePath = ofd.FileName; Logined = true; } catch { if (havePwd) { MessageBox.Show("文件打开失败!可能密码输入错误或文件已损坏!"); Logined = false; } else { MessageBox.Show("文件打开失败!"); FormSpaner.UnLockFrom(baseFrom); return(false); } } } if (OOP != null) { FormSpaner.SetFromProcess(80, "装载工程", baseFrom); LoadProjectObject(ref OOP); tw.Text = OOP.BasicData.ProjectFilePath; if (System.IO.File.Exists(tw.Text)) { tw.Text = "Project : " + (new System.IO.FileInfo(tw.Text)).Name; } } else { MessageBox.Show("工程解析异常!"); FormSpaner.UnLockFrom(baseFrom); return(false); } } catch { MessageBox.Show("未知错误"); FormSpaner.UnLockFrom(baseFrom); return(false); } FormSpaner.SetFromProcess(100, "完成", baseFrom); FormSpaner.UnLockFrom(baseFrom); return(true); } else { FormSpaner.UnLockFrom(baseFrom); return(false); } }