/// <summary> /// todoComment /// </summary> public static void SaveUserDefaultsAndDisconnect() { String CantDisconnectReason; try { TUserDefaults.SaveChangedUserDefaults(); if (!Ict.Petra.Client.App.Core.TConnectionManagement.GConnectionManagement.DisconnectFromServer(out CantDisconnectReason)) { #if TESTMODE TLogging.Log("cannot disconnect: " + CantDisconnectReason); #endif #if TESTMODE #else if (TLogging.DebugLevel > 0) { MessageBox.Show(CantDisconnectReason, "Error on Client Disconnection"); } #endif } } catch (Exception Exp) { if (TLogging.DebugLevel > 0) { MessageBox.Show("DEBUG Information: Unhandled exception while disconnecting from Servers: " + "\r\n" + Exp.ToString()); } } }
private static void SaveOptions(TDlgSelectCSVSeparator ASeparatorDialog) { string impOptions = ASeparatorDialog.SelectedSeparator; impOptions += ASeparatorDialog.NumberFormat; TUserDefaults.SetDefault("Imp Options", impOptions); TUserDefaults.SetDefault("Imp Date", ASeparatorDialog.DateFormat); TUserDefaults.SaveChangedUserDefaults(); }
private void SaveUserDefaults() { String expOptions = ConvertDelimiter((String)cmbDelimiter.SelectedItem, false); expOptions += ConvertNumberFormat(cmbNumberFormat); TUserDefaults.SetDefault("Exp Options", expOptions); TUserDefaults.SetDefault("Exp Filename", txtFilename.Text); TUserDefaults.SetDefault("Exp Date", (String)cmbDateFormat.SelectedItem); TUserDefaults.SaveChangedUserDefaults(); }
/// <summary> /// /// </summary> /// <param name="AExchangeRateDT">The corporate or daily exchange rate table</param> /// <param name="AImportMode">Determines whether corporate or daily exchange rates specified - either 'Daily' or 'Corporate'</param> /// <param name="AResultCollection">A validation collection to which errors will be added</param> /// <returns>The number of rows that were actually imported. Rows that duplicate existing rows do not count. /// This is usually because this is an attempt to import again after a failed previous attempt.</returns> public static int ImportCurrencyExRates(TTypedDataTable AExchangeRateDT, string AImportMode, TVerificationResultCollection AResultCollection) { OpenFileDialog DialogBox = new OpenFileDialog(); DialogBox.Title = Catalog.GetString("Import exchange rates from spreadsheet file"); DialogBox.Filter = Catalog.GetString("Spreadsheet files (*.csv)|*.csv"); if (DialogBox.ShowDialog() == DialogResult.OK) { String dateFormatString = TUserDefaults.GetStringDefault("Imp Date", "MDY"); String impOptions = TUserDefaults.GetStringDefault("Imp Options", ";" + TDlgSelectCSVSeparator.NUMBERFORMAT_AMERICAN); TDlgSelectCSVSeparator DlgSeparator = new TDlgSelectCSVSeparator(false); Boolean fileCanOpen = DlgSeparator.OpenCsvFile(DialogBox.FileName); if (!fileCanOpen) { MessageBox.Show(Catalog.GetString("Unable to open file."), Catalog.GetString("Import Exchange Rates"), MessageBoxButtons.OK, MessageBoxIcon.Stop); return(0); } DlgSeparator.DateFormat = dateFormatString; if (impOptions.Length > 1) { DlgSeparator.NumberFormat = impOptions.Substring(1); } DlgSeparator.SelectedSeparator = impOptions.Substring(0, 1); if (DlgSeparator.ShowDialog() == DialogResult.OK) { // Save the settings that we specified impOptions = DlgSeparator.SelectedSeparator; impOptions += DlgSeparator.NumberFormat; TUserDefaults.SetDefault("Imp Options", impOptions); TUserDefaults.SetDefault("Imp Date", DlgSeparator.DateFormat); TUserDefaults.SaveChangedUserDefaults(); // Do the import and retuen the number of rows imported and any messages return(ImportCurrencyExRatesFromCSV(AExchangeRateDT, DialogBox.FileName, DlgSeparator.SelectedSeparator, DlgSeparator.NumberFormat, DlgSeparator.DateFormat, AImportMode, AResultCollection)); } } return(0); }
private void SaveUserDefaults(OpenFileDialog dialog, String impOptions) { if (dialog != null) { TUserDefaults.SetDefault("Imp Filename", dialog.FileName); } impOptions = FdlgSeparator.SelectedSeparator; impOptions += FdlgSeparator.NumberFormat; TUserDefaults.SetDefault("Imp Options", impOptions); TUserDefaults.SetDefault("Imp Date", FdlgSeparator.DateFormat); TUserDefaults.SaveChangedUserDefaults(); }
private void SaveUserDefaults() { TUserDefaults.SetDefault("Imp Filename", txtFilename.Text); String expOptions = (rbtDetail.Checked) ? "D" : "S"; expOptions += (rbtOriginalTransactionCurrency.Checked) ? "Trans" : "Base"; TUserDefaults.SetDefault("Exp Options", expOptions); String impOptions = ConvertDelimiter((String)cmbDelimiter.SelectedItem, false); impOptions += ConvertNumberFormat(cmbNumberFormat); TUserDefaults.SetDefault("Imp Options", impOptions); TUserDefaults.SetDefault("Imp Date", (String)cmbDateFormat.SelectedItem); TUserDefaults.SaveChangedUserDefaults(); }
private void SaveUserDefaults() { TUserDefaults.SetDefault("Imp Filename", txtFilename.Text); String expOptions = (rbtDetail.Checked) ? "D" : "S"; expOptions += (chkIncludeUnposted.Checked) ? "U+" : "U-"; expOptions += (chkTransactionsOnly.Checked) ? "T+" : "T-"; expOptions += (FGiftExtraColumnsUserDefault == '+') ? "X+" : "X-"; expOptions += (rbtBatchNumberSelection.Checked) ? "N" : "D"; expOptions += (rbtOriginalTransactionCurrency.Checked) ? "Trans" : "Base"; TUserDefaults.SetDefault("Exp Options", expOptions); String impOptions = ConvertDelimiter((String)cmbDelimiter.SelectedItem, false); impOptions += ConvertNumberFormat(cmbNumberFormat); TUserDefaults.SetDefault("Imp Options", impOptions); TUserDefaults.SetDefault("Imp Date", cmbDateFormat.GetSelectedString()); TUserDefaults.SaveChangedUserDefaults(); }
/// <summary> /// This is the main routine to import tax data from clipboard or file /// </summary> private void BtnOK_Click(Object Sender, EventArgs e) { if (!ValidateInputs()) { return; } TDlgSelectCSVSeparator dialog = new TDlgSelectCSVSeparator(chkFirstRowIsHeader.Checked); if (rbtFromClipboard.Checked) { dialog.CSVData = Clipboard.GetText(TextDataFormat.UnicodeText); dialog.SelectedSeparator = "\t"; } else { if (dialog.OpenCsvFile(txtFileName.Text) == false) { MessageBox.Show(Catalog.GetString("Could not open the file you have chosen. Maybe it is already open somewhere else."), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } // work out what the separator is... String impOptions = TUserDefaults.GetStringDefault("Imp Options", ";" + TDlgSelectCSVSeparator.NUMBERFORMAT_AMERICAN); string separator = StringHelper.GetCSVSeparator(dialog.FileContent) ?? ((impOptions.Length > 0) ? impOptions.Substring(0, 1) : ";"); string numberFormat = (impOptions.Length > 1) ? impOptions.Substring(1) : TDlgSelectCSVSeparator.NUMBERFORMAT_AMERICAN; // Now we need to convert the multi-column file/clipboard data to a simple two column list string twoColumnImport; if (ConvertInputTextToTwoColumns(dialog.FileContent, separator, Convert.ToInt16(nudPartnerKeyColumn.Value - 1), Convert.ToInt16(nudTaxCodeColumn.Value - 1), out twoColumnImport) == false) { // We got an error return; } dialog.CSVData = twoColumnImport; dialog.SelectedSeparator = separator; dialog.DateFormat = ""; // This will make the combo box empty // Show the Preview dialog DialogResult dialogResult = dialog.ShowDialog(); // Save the settings whether the result was OK or cancel TUserDefaults.SetDefault("Imp Options", dialog.SelectedSeparator + numberFormat); TUserDefaults.SaveChangedUserDefaults(); if (dialogResult != DialogResult.OK) { // It was cancelled return; } // Set up the inputs for the call to the server to do the actual import string importString = dialog.FileContent; string selectedSeparator = dialog.SelectedSeparator; int emptyCodeAction = rbtFailEmptyTaxCode.Checked ? 0 : rbtSkipEmptyTaxCode.Checked ? 1 : rbtDeleteEmptyTaxCode.Checked ? 2 : -1; Hashtable requestParams = new Hashtable(); requestParams.Add("Delimiter", dialog.SelectedSeparator); requestParams.Add("FirstRowIsHeader", chkFirstRowIsHeader.Checked); requestParams.Add("FailIfNotPerson", chkFailIfNotPerson.Checked); requestParams.Add("FailIfInvalidPartner", chkFailInvalidPartner.Checked); requestParams.Add("OverwriteExistingTaxCode", chkOverwriteExistingTaxCode.Checked); requestParams.Add("CreateExtract", chkCreateExtract.Checked); requestParams.Add("ExtractName", txtExtractName.Text); requestParams.Add("ExtractDescription", txtExtractDescription.Text); requestParams.Add("CreateOutFile", chkCreateOutFile.Checked); requestParams.Add("EmptyTaxCode", emptyCodeAction); requestParams.Add("TaxCodeType", FTaxGovIdKeyName); // we include partner details if the user does not want a output file because we will write a sneaky one in the logs folder requestParams.Add("IncludePartnerDetails", (chkCreateOutFile.Checked && chkIncludePartnerDetails.Checked) || (chkCreateOutFile.Checked == false)); // Get the server to parse the file and return our results bool success = false; TVerificationResultCollection errorMessages = null; List <string> outputLines = null; bool newExtractCreated = false; int newExtractId = -1; int newExtractKeyCount = -1; int taxCodesImported = -1; int taxCodesDeleted = -1; int taxCodeMismatchCount = -1; // Do the import on the server Thread ImportThread = new Thread(() => ImportPartnerTaxCodes( requestParams, importString, out success, out errorMessages, out outputLines, out newExtractCreated, out newExtractId, out newExtractKeyCount, out taxCodesImported, out taxCodesDeleted, out taxCodeMismatchCount)); // Show the progress dialog so that the user can cancel using (TProgressDialog ImportDialog = new TProgressDialog(ImportThread)) { ImportDialog.ShowDialog(); } if (success) { // Import was successful string msg = Catalog.GetString("The Import was successful. "); msg += string.Format(Catalog.GetPluralString("{0} tax code was imported. ", "{0} tax codes were imported. ", taxCodesImported, true), taxCodesImported); msg += string.Format(Catalog.GetPluralString("{0} tax code was deleted. ", "{0} tax codes were deleted. ", taxCodesDeleted, true), taxCodesDeleted); if (taxCodeMismatchCount > 0) { msg += string.Format(Catalog.GetPluralString( "{0} tax code was not imported because it did not match the existing code for the Partner. ", "{0} tax codes were not imported because they did not match the existing code for the Partner. ", taxCodeMismatchCount, true), taxCodeMismatchCount); } if (chkCreateOutFile.Checked) { //msg += " "; msg += Catalog.GetString("You can see full details in the output file."); } if (chkCreateExtract.Checked) { msg += Environment.NewLine + Environment.NewLine; if (newExtractCreated) { msg += string.Format(Catalog.GetString("In addition an extract was created containing {0} keys."), newExtractKeyCount); } else { msg += "WARNING! The creation of a new extract failed. Maybe the name was already in use."; } } MessageBox.Show(msg, this.Text, MessageBoxButtons.OK); } else { // Import failed if (TVerificationHelper.ResultsContainErrorCode(errorMessages, PetraErrorCodes.ERR_DB_SERIALIZATION_EXCEPTION)) { TConcurrentServerTransactions.ShowTransactionSerializationExceptionDialog(); return; } else if (errorMessages.HasCriticalErrors) { // A failed import should contain some critical errors. // Concatenate them and show them in an extended message box with scroll bar string msg = Catalog.GetString("The import failed") + Environment.NewLine + Environment.NewLine; for (int i = 0; i < errorMessages.Count; i++) { msg += string.Format("[{0}] - {1}", errorMessages[i].ResultContext, errorMessages[i].ResultText); msg += Environment.NewLine; } msg += Catalog.GetString("No data was imported into the database."); TFrmExtendedMessageBox msgBox = new TFrmExtendedMessageBox(this); msgBox.ShowDialog(msg, this.Text, "", TFrmExtendedMessageBox.TButtons.embbOK, TFrmExtendedMessageBox.TIcon.embiInformation); } else { // Should not end up wit a failed import and no error messages MessageBox.Show("Import failed", this.Text, MessageBoxButtons.OK); } } string pathToOutFile = null; if (chkCreateOutFile.Checked) { pathToOutFile = txtOutputFileName.Text; } else { // we try and write a log file anyway in the log folder string logPath = TAppSettingsManager.GetValue("OpenPetra.PathLog", ""); if (logPath.Length > 0) { pathToOutFile = logPath + Path.DirectorySeparatorChar + "ImportPartnerTaxCodes.log"; } } if (pathToOutFile != null) { // Write the output file using (StreamWriter sw = new StreamWriter(pathToOutFile)) { for (int i = 0; i < outputLines.Count; i++) { sw.WriteLine(outputLines[i]); } sw.Close(); } } if (chkCreateExtract.Checked) { // Tell the client about the new extract // refresh extract master screen if it is open TFormsMessage BroadcastMessage = new TFormsMessage(TFormsMessageClassEnum.mcExtractCreated); BroadcastMessage.SetMessageDataName(txtExtractName.Text); TFormsList.GFormsList.BroadcastFormMessage(BroadcastMessage); } // Save the GUI settings SaveGUISettings(); }