private bool ApplySettings() { bool result = false; if (null != InvSettings) { UInt32 vatRate; UInt32 paymentDays; string vatRateStr = TextBoxVATRate.Text; string paymentDaysStr = TextBoxPaymentDays.Text; DateTime issueDate = DatePickerIssueDate.SelectedDate ?? DateTime.Now; ParseFailReason reason = InputParser.ParseInvoiceSettings (vatRateStr, out vatRate, paymentDaysStr, out paymentDays); if (ParseFailReason.None != reason) { GUIInfoHelper.DisplayInputParseError(reason); } else { InvSettings.DaysForPayment = paymentDays; InvSettings.VATRate = vatRate; InvSettings.IssueDate = issueDate; result = true; } } return(result); }
public static void DisplayInputParseError(ParseFailReason reason) { const string defaultErrorMsg = "Nieznany błąd"; const string emptyInputMsg = "Wypełnij wszystkie wymagane pola"; const string wrongInputMsg = "Nieprawidłowe dane wejściowe"; const string overflowInputMsg = "Została wprowadzona zbyt duża warotść"; const string invalidInputLenghtMsg = "Wprowadzona wartość ma nieprawidłową długość"; string errorMessage = defaultErrorMsg; switch (reason) { case ParseFailReason.EmptyInput: errorMessage = emptyInputMsg; break; case ParseFailReason.WrongInput: errorMessage = wrongInputMsg; break; case ParseFailReason.InputOverflow: errorMessage = overflowInputMsg; break; case ParseFailReason.InvalidInputLenght: errorMessage = invalidInputLenghtMsg; break; } MessageBox.Show(errorMessage, "Błąd", MessageBoxButton.OK, MessageBoxImage.Information); }
public static ParseFailReason ParseInvoiceSettings(string VATRate, out UInt32 oVatRate, string paymentDays, out UInt32 oPaymentDays) { ParseFailReason reason = ParseFailReason.None; oVatRate = oPaymentDays = 0; if (null != VATRate && null != paymentDays) { if (0 == VATRate.Length || 0 == paymentDays.Length) { reason = ParseFailReason.EmptyInput; } else { try { oVatRate = UInt32.Parse(VATRate); oPaymentDays = UInt32.Parse(paymentDays); } catch (Exception ex) { reason = SetFailReason(ex); } } } else { reason = ParseFailReason.NullArgument; } return(reason); }
/// <summary> /// Generates company settings class instance from input provided by user. /// Displays error if input provided by user is incorrect /// </summary> /// <returns>True if user passed correct values and CompanySettings class instance was created. /// False otherwise</returns> private Company GenerateSettings() { Company newSettings = null; UInt64 REGON; UInt64 NIP; UInt16 houseNumber; UInt32 postalCode; //Postal code if combination of two text boxes values. Spaces should be removed in case user inserted some string postalCodeStr = (TextBoxAddressPostCode1.Text + TextBoxAddressPostCode2.Text).Replace(" ", string.Empty); ParseFailReason reason = InputParser.ParseCompanySettigns(TextBoxCompanyName.Text, TextBoxNIP.Text, out NIP, TextBoxREGON.Text, out REGON, TextBoxAddressStreet.Text, TextBoxAddressHouseNumber.Text, out houseNumber, TextBoxAddressCity.Text, postalCodeStr, out postalCode); if (ParseFailReason.None == reason) { newSettings = new Company(TextBoxCompanyName.Text, NIP, REGON, TextBoxAddressStreet.Text, houseNumber, TextBoxAddressCity.Text, postalCode, TextBoxBankAccountNumber.Text); } else { GUIInfoHelper.DisplayInputParseError(reason); } return(newSettings); }
private static ParseFailReason SetFailReason(Exception ex) { ParseFailReason reason = ParseFailReason.None; if (null != ex) { if (ex is FormatException) { reason = ParseFailReason.WrongInput; } else if (ex is OverflowException) { reason = ParseFailReason.InputOverflow; } else { reason = ParseFailReason.Unkown; } } else { reason = ParseFailReason.Unkown; } return(reason); }
public static ParseFailReason ParseInvoice(string paymentDays, out UInt32 oPaymentDays) { ParseFailReason reason = ParseFailReason.None; oPaymentDays = 0; if (null == paymentDays) { reason = ParseFailReason.NullArgument; } else if (0 == paymentDays.Length) { reason = ParseFailReason.EmptyInput; } else { try { UInt32.Parse(paymentDays); } catch (Exception ex) { SetFailReason(ex); } } return(reason); }
private void BeginAddItemToGridView() { UInt32 vatRate = 0; double nettoPrice = 0.0f; UInt32 quantity = 0; ParseFailReason parseFailReason = InputParser.ParseGridInvoiceItem (TextBoxItemName.Text, TextBoxVATRate.Text, out vatRate, TextBoxNettoPrice.Text, out nettoPrice, TextBoxQuantity.Text, out quantity); if (ParseFailReason.None == parseFailReason) { AddInvoiceItemToGridView(TextBoxItemName.Text, TextBoxComment.Text, nettoPrice, vatRate, quantity); DataGridInvoiceItems.Items.Refresh(); } else { GUIInfoHelper.DisplayInputParseError(parseFailReason); } }
public static ParseFailReason ParseCompanySettigns(string companyName, string NIP, out UInt64 oNIP, string REGON, out UInt64 oREGON, string street, string houseNumber, out UInt16 oHouseNumber , string city, string postalCode, out UInt32 oPostalCode) { ParseFailReason reason = ParseFailReason.None; oNIP = oREGON = oPostalCode = oHouseNumber = 0; if (null == companyName || null == NIP && null == REGON && null == street || null == houseNumber || null == city || null == postalCode) { reason = ParseFailReason.NullArgument; } else if (0 == companyName.Length || 0 == NIP.Length || 0 == REGON.Length || 0 == street.Length || 0 == houseNumber.Length || 0 == city.Length || 0 == postalCode.Length) { reason = ParseFailReason.EmptyInput; } else if (PostalCodeInputLenght != postalCode.Length) { reason = ParseFailReason.InvalidInputLenght; } else { try { oNIP = UInt64.Parse(NIP); oREGON = UInt64.Parse(REGON); oHouseNumber = UInt16.Parse(houseNumber); oPostalCode = UInt32.Parse(postalCode); } catch (Exception ex) { SetFailReason(ex); } } return(reason); }
/// <summary> /// Checks whether all parameters are correct to create invoice item /// </summary> /// <returns>Exception if</returns> public static ParseFailReason ParseGridInvoiceItem(string itemName, string vatRate, out UInt32 oVatRate, string nettoPrice, out double oNettoPrice, string quantity, out UInt32 oQuantity) { ParseFailReason reason = ParseFailReason.None; oVatRate = 0; oQuantity = 0; oNettoPrice = 0.0d; if (null != itemName && null != vatRate && null != nettoPrice) { if (0 == itemName.Length || 0 == vatRate.Length || 0 == nettoPrice.Length || 0 == quantity.Length) { reason = ParseFailReason.EmptyInput; } else { try { oVatRate = UInt32.Parse(vatRate); oQuantity = UInt32.Parse(quantity); oNettoPrice = double.Parse(nettoPrice); } catch (Exception ex) { reason = SetFailReason(ex); } } } else { reason = ParseFailReason.NullArgument; } return(reason); }
internal ParseException(ParseFailReason failReason, string message) : base(message) { FailReason = failReason; }