private void butOK_Click(object sender, System.EventArgs e) { if (textKey1.Text != "" && !Regex.IsMatch(textKey1.Text, @"^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$") && !Regex.IsMatch(textKey1.Text, @"^[A-Z0-9]{16}$")) { MsgBox.Show(this, "Invalid registration key format."); return; } string regkey = ""; if (Regex.IsMatch(textKey1.Text, @"^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$")) { regkey = textKey1.Text.Substring(0, 4) + textKey1.Text.Substring(5, 4) + textKey1.Text.Substring(10, 4) + textKey1.Text.Substring(15, 4); } else if (Regex.IsMatch(textKey1.Text, @"^[A-Z0-9]{16}$")) { regkey = textKey1.Text; } if (!ValidateKey(regkey)) //a blank registration key will only be valid if the CDT.dll is foreign { MsgBox.Show(this, "Invalid registration key."); return; } Prefs.UpdateString(PrefName.RegistrationKey, regkey); FormOpenDental.RegKeyIsForTesting = PrefL.IsRegKeyForTesting(); //prefs refresh automatically in the calling class anyway. DialogResult = DialogResult.OK; }
private void butValidate_Click(object sender, EventArgs e) { if (!PrefC.UsingAtoZfolder) { MsgBox.Show(this, "Not using AtoZ folders, so UpdateFiles folder does not exist."); return; } string folderUpdate = ODFileUtils.CombinePaths(ImageStore.GetPreferredAtoZpath(), "UpdateFiles"); Version currentVersion = new Version(Application.ProductVersion); //identify the ideal situation where everything is already in place and no copy is needed. if (Directory.Exists(folderUpdate)) { string filePath = ODFileUtils.CombinePaths(folderUpdate, "Manifest.txt"); if (File.Exists(filePath)) { string fileText = File.ReadAllText(filePath); if (fileText == currentVersion.ToString(3)) { if (!MsgBox.Show(this, MsgBoxButtons.YesNo, "According to the information in UpdateFiles\\Manifest.txt, the UpdateFiles folder is current. Recopy anyway?")) { return; } } } } Cursor = Cursors.WaitCursor; if (!PrefL.CopyFromHereToUpdateFiles(currentVersion)) { Cursor = Cursors.Default; return; } Cursor = Cursors.Default; MsgBox.Show(this, "Recopied."); }
private void butInstallEConnector_Click(object sender, EventArgs e) { DialogResult result; //Check to see if the update server preference is set. //If set, make sure that this is set to the computer currently logged on. string updateServerName = PrefC.GetString(PrefName.WebServiceServerName); if (!string.IsNullOrEmpty(updateServerName) && !ODEnvironment.IdIsThisComputer(updateServerName.ToLower())) { result = MessageBox.Show(Lan.g(this, "The eConnector service should be installed on the Update Server") + ": " + updateServerName + "\r\n" + Lan.g(this, "Are you trying to install the eConnector on a different computer by accident?"), "", MessageBoxButtons.YesNoCancel); //Only saying No to this message box pop up will allow the user to continue (meaning they fully understand what they are getting into). if (result != DialogResult.No) { return; } } //Only ask the user if they want to set the Update Server Name preference if it is not already set. if (string.IsNullOrEmpty(updateServerName)) { result = MessageBox.Show(Lan.g(this, "The computer that has the eConnector service installed should be set as the Update Server.") + "\r\n" + Lan.g(this, "Would you like to make this computer the Update Server?"), "", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Cancel) { return; } else if (result == DialogResult.Yes) { Prefs.UpdateString(PrefName.WebServiceServerName, Dns.GetHostName()); } try { WebServiceMainHQProxy.SetEConnectorOn(); } catch { MsgBox.Show(this, "The eConnector was disabled. Please contact support."); return; } } //At this point the user wants to install the eConnector service (or upgrade the old cust listener to the eConnector). bool isListening; if (!PrefL.UpgradeOrInstallEConnector(false, out isListening)) { //Warning messages would have already been shown to the user, simply return. return; } //The eConnector service was successfully installed and is running, set the EConnectorEnabled flag true if false. Prefs.UpdateBool(PrefName.EConnectorEnabled, true); MsgBox.Show(this, "eConnector successfully installed"); butInstallEConnector.Enabled = false; FillTextListenerServiceStatus(); FillGridListenerService(); }
private void butOK_Click(object sender, System.EventArgs e) { if (textRegKey.Text != "" && !Regex.IsMatch(textRegKey.Text, @"^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$") && !Regex.IsMatch(textRegKey.Text, @"^[A-Z0-9]{16}$")) { MsgBox.Show(this, "Invalid registration key format."); return; } if (textMultiple.Text.Contains(" ")) { MsgBox.Show(this, "No spaces allowed in the database list."); return; } string regkey = ""; if (Regex.IsMatch(textRegKey.Text, @"^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$")) { regkey = textRegKey.Text.Substring(0, 4) + textRegKey.Text.Substring(5, 4) + textRegKey.Text.Substring(10, 4) + textRegKey.Text.Substring(15, 4); } else if (Regex.IsMatch(textRegKey.Text, @"^[A-Z0-9]{16}$")) { regkey = textRegKey.Text; } bool refreshCache = false; if (Prefs.UpdateString(PrefName.UpdateServerAddress, textUpdateServerAddress.Text) | Prefs.UpdateBool(PrefName.UpdateShowMsiButtons, checkShowMsi.Checked) | Prefs.UpdateString(PrefName.UpdateWebsitePath, textWebsitePath.Text) | Prefs.UpdateString(PrefName.UpdateWebProxyAddress, textWebProxyAddress.Text) | Prefs.UpdateString(PrefName.UpdateWebProxyUserName, textWebProxyUserName.Text) | Prefs.UpdateString(PrefName.UpdateWebProxyPassword, textWebProxyPassword.Text) | Prefs.UpdateString(PrefName.UpdateMultipleDatabases, textMultiple.Text) | Prefs.UpdateDateT(PrefName.UpdateDateTime, _updateTime)) { refreshCache = true; } if (Prefs.UpdateString(PrefName.RegistrationKey, regkey)) { FormOpenDental.RegKeyIsForTesting = PrefL.IsRegKeyForTesting(); refreshCache = true; } if (refreshCache) { Cursor = Cursors.WaitCursor; DataValid.SetInvalid(InvalidType.Prefs); Cursor = Cursors.Default; } DialogResult = DialogResult.OK; }
private void butRecopy_Click(object sender, EventArgs e) { Version versionCurrent = new Version(Application.ProductVersion); string folderUpdate = ""; if (PrefC.AtoZfolderUsed) { folderUpdate = ODFileUtils.CombinePaths(ImageStore.GetPreferredAtoZpath(), "UpdateFiles"); } else //db { folderUpdate = ODFileUtils.CombinePaths(Path.GetTempPath(), "UpdateFiles"); if (Directory.Exists(folderUpdate)) { Directory.Delete(folderUpdate, true); } DocumentMisc docmisc = DocumentMiscs.GetUpdateFilesZip(); if (docmisc != null) { byte[] rawBytes = Convert.FromBase64String(docmisc.RawBase64); using (ZipFile unzipped = ZipFile.Read(rawBytes)) { unzipped.ExtractAll(folderUpdate); } } } //identify the ideal situation where everything is already in place and no copy is needed. if (Directory.Exists(folderUpdate)) { string filePath = ODFileUtils.CombinePaths(folderUpdate, "Manifest.txt"); if (File.Exists(filePath)) { string fileText = File.ReadAllText(filePath); if (fileText == versionCurrent.ToString(3)) { if (!MsgBox.Show(this, MsgBoxButtons.YesNo, "According to the information in UpdateFiles\\Manifest.txt, the UpdateFiles folder is current. Recopy anyway?")) { return; } } } } Cursor = Cursors.WaitCursor; if (!PrefL.CopyFromHereToUpdateFiles(versionCurrent)) { Cursor = Cursors.Default; return; } Cursor = Cursors.Default; MsgBox.Show(this, "Recopied."); }
private void butDownload_Click(object sender, System.EventArgs e) { if (IsDynamicMode()) { return; } string patchName = "Setup.exe"; string destDir = ImageStore.GetPreferredAtoZpath(); if (destDir == null || CloudStorage.IsCloudStorage) { destDir = PrefC.GetTempFolderPath(); } PrefL.DownloadInstallPatchFromURI(textWebsitePath.Text + textUpdateCode.Text + "/" + patchName, //Source URI ODFileUtils.CombinePaths(destDir, patchName), true, false, null); //Local destination file. }
private void CheckMain() { butDownload.Enabled = false; textResult.Text = ""; textResult2.Text = ""; if (textUpdateCode.Text.Length == 0) { textResult.Text += Lan.g(this, "Registration number not valid."); return; } string updateInfoMajor = ""; string updateInfoMinor = ""; butDownload.Enabled = PrefL.ShouldDownloadUpdate(textWebsitePath.Text, textUpdateCode.Text, out updateInfoMajor, out updateInfoMinor); textResult.Text = updateInfoMajor; textResult2.Text = updateInfoMinor; }
private void DownloadInstallPatchForVersion(string version, string updateCode, bool showFormUpdateInstallMsg) { if (IsDynamicMode()) { return; } if (showFormUpdateInstallMsg) { FormUpdateInstallMsg FormUIM = new FormUpdateInstallMsg(); FormUIM.ShowDialog(); if (FormUIM.DialogResult != DialogResult.OK) { return; } } string patchName = "Setup.exe"; string fileNameWithVers = version; //6.9.23F fileNameWithVers = fileNameWithVers.Replace("F", ""); //6.9.23 fileNameWithVers = fileNameWithVers.Replace(".", "_"); //6_9_23 fileNameWithVers = "Setup_" + fileNameWithVers + ".exe"; //Setup_6_9_23.exe string destDir = ImageStore.GetPreferredAtoZpath(); string destPath2 = null; if (destDir == null) //Not using A to Z folders? { destDir = PrefC.GetTempFolderPath(); } else //using A to Z folders. { destPath2 = ODFileUtils.CombinePaths(destDir, "SetupFiles"); if (PrefC.AtoZfolderUsed == DataStorageType.LocalAtoZ && !Directory.Exists(destPath2)) { Directory.CreateDirectory(destPath2); } else if (CloudStorage.IsCloudStorage) { destDir = PrefC.GetTempFolderPath(); //Cloud needs it to be downloaded to a local temp folder } destPath2 = ODFileUtils.CombinePaths(destPath2, fileNameWithVers); } PrefL.DownloadInstallPatchFromURI(PrefC.GetString(PrefName.UpdateWebsitePath) + updateCode + "/" + patchName, //Source URI ODFileUtils.CombinePaths(destDir, patchName), //Local destination file. true, true, destPath2); //second destination file. Might be null. }
private void butRecopy_Click(object sender, EventArgs e) { Version versionCurrent = new Version(Application.ProductVersion); string folderUpdate = ODFileUtils.CombinePaths(PrefC.GetTempFolderPath(), "UpdateFiles"); if (Directory.Exists(folderUpdate)) { try { Directory.Delete(folderUpdate, true); } catch { MsgBox.Show(this, "Recopy failed. Please run as administrator then try again."); return; } } Cursor = Cursors.WaitCursor; if (!PrefL.CopyFromHereToUpdateFiles(versionCurrent, false, true, true, this)) { Cursor = Cursors.Default; return; } Cursor = Cursors.Default; MsgBox.Show(this, "Recopied."); }