public static string GetNationalCode(string value) { if (value.IsNullOrEmpty()) { return(""); } value = value.Trim(); if (value.Length > 12) { value = value.Substring(0, 12); } else if (value.Length != 12 && value.Length > 10) { value = value.Substring(0, 10); } long numberValue; if (long.TryParse(value, out numberValue)) { return(value.Substring(0, 3) + "-" + value.Substring(3, 6) + "-" + value.Substring(9, 1)); } else if (!InputBoxValidationHelper.IsNationalCode(value)) { return(""); } return(value); }
public static string FormatTextValueWithInputType(IInputBox control, string value) { switch (control.InputType) { case InputBoxValidationHelper.InputTypes.AllCharacters: return(value); case InputBoxValidationHelper.InputTypes.Number: long numberValue; if (!long.TryParse(value, out numberValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.DecimalNumber: decimal decimalNumberValue; if (!decimal.TryParse(value, out decimalNumberValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.ShortInt: short shortValue; if (!short.TryParse(value, out shortValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.Int: int intValue; if (!int.TryParse(value, out intValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.LongInt: long longValue; if (!long.TryParse(value, out longValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.Float: float floatValue; if (!float.TryParse(value, out floatValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.Double: double doubleValue; if (!double.TryParse(value, out doubleValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.Decimal: decimal decimalValue; if (!decimal.TryParse(value, out decimalValue)) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.PersianText: if (value.Where(t => !InputBoxValidationHelper.IsPersianChar(t)).Count() > 0) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.EnglishText: if (value.Where(t => !InputBoxValidationHelper.IsEnglishChar(t)).Count() > 0) { return(""); } return(value); case InputBoxValidationHelper.InputTypes.Mobile: return(GetMobile(value)); case InputBoxValidationHelper.InputTypes.NationalCode: return(GetNationalCode(value)); case InputBoxValidationHelper.InputTypes.Email: if (!value.Contains('@')) { return(""); } return(value); default: throw new Exception(); } }
public static bool CheckKeyPressed(char keyChar, IInputBox control, out string errorText) { if (control.IllegalCharacters.Contains(keyChar)) { errorText = ("حروف " + string.Join <char>(",", control.IllegalCharacters.ToArray()) + " مجاز نیستند"); return(false); } else { switch (control.InputType) { case InputBoxValidationHelper.InputTypes.AllCharacters: break; case InputBoxValidationHelper.InputTypes.Number: if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } break; case InputBoxValidationHelper.InputTypes.DecimalNumber: if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] && control.Text.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0])) { errorText = ("عدد اعشاری را به صورت صحیح وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } break; case InputBoxValidationHelper.InputTypes.PersianText: if (!char.IsControl(keyChar) && !InputBoxValidationHelper.IsPersianChar(keyChar)) { errorText = ("فقط حروف فارسی وارد کنید"); return(false); } break; case InputBoxValidationHelper.InputTypes.EnglishText: if (!char.IsControl(keyChar) && !InputBoxValidationHelper.IsEnglishChar(keyChar)) { errorText = ("فقط حروف انگلیسی وارد کنید"); return(false); } break; case InputBoxValidationHelper.InputTypes.ShortInt: if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (char.IsDigit(keyChar) || keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { string text = control.GetNewText(keyChar); if (text == "-") { text = "-0"; } short t; if (!short.TryParse(text.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator[0].ToString(), ""), out t)) { errorText = (string.Format("محدوده عدد باید بین {0} و {1} باشد", short.MinValue.ToString(), short.MaxValue.ToString())); return(false); } } break; case InputBoxValidationHelper.InputTypes.Int: if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (char.IsDigit(keyChar) || keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { string text = control.GetNewText(keyChar); if (text == "-") { text = "-0"; } int t; if (!int.TryParse(text.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator[0].ToString(), ""), out t)) { errorText = (string.Format("محدوده عدد باید بین {0} و {1} باشد", int.MinValue.ToString(), int.MaxValue.ToString())); return(false); } } break; case InputBoxValidationHelper.InputTypes.LongInt: if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (char.IsDigit(keyChar) || keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { string text = control.GetNewText(keyChar); if (text == "-") { text = "-0"; } long t; if (!long.TryParse(text.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator[0].ToString(), ""), out t)) { errorText = (string.Format("محدوده عدد باید بین {0} و {1} باشد", long.MinValue.ToString(), long.MaxValue.ToString())); return(false); } } break; case InputBoxValidationHelper.InputTypes.Float: if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] && control.Text.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("عدد اعشاری را به صورت صحیح وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (char.IsDigit(keyChar) || keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { string text = control.GetNewText(keyChar); if (text == "-") { text = "-0"; } float t; if (!float.TryParse(text.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator[0].ToString(), ""), out t)) { errorText = (string.Format("محدوده عدد باید بین {0} و {1} باشد", float.MinValue.ToString(), float.MaxValue.ToString())); return(false); } } break; case InputBoxValidationHelper.InputTypes.Double: if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] && control.Text.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("عدد اعشاری را به صورت صحیح وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (char.IsDigit(keyChar) || keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { string text = control.GetNewText(keyChar); if (text == "-") { text = "-0"; } double t; if (!double.TryParse(text.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator[0].ToString(), ""), out t)) { errorText = (string.Format("محدوده عدد باید بین {0} و {1} باشد", double.MinValue.ToString(), double.MaxValue.ToString())); return(false); } } break; case InputBoxValidationHelper.InputTypes.Decimal: if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] && control.Text.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { errorText = ("عدد اعشاری را به صورت صحیح وارد کنید"); return(false); } else if (keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0] && control.SelectionStart != 0) { errorText = ("عدد را به صورت صحیح وارد کنید"); return(false); } else if (!char.IsControl(keyChar) && !char.IsDigit(keyChar) && keyChar != CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (char.IsDigit(keyChar) || keyChar == CultureInfo.CurrentCulture.NumberFormat.NegativeSign[0]) { string text = control.GetNewText(keyChar); if (text == "-") { text = "-0"; } decimal t; if (!decimal.TryParse(text.Replace(CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator[0].ToString(), ""), out t)) { errorText = (string.Format("محدوده عدد باید بین {0} و {1} باشد", decimal.MinValue.ToString(), decimal.MaxValue.ToString())); return(false); } } break; case InputBoxValidationHelper.InputTypes.Mobile: if (!char.IsControl(keyChar) && !char.IsDigit(keyChar)) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (char.IsDigit(keyChar)) { if (control.SelectionStart == 0 && keyChar != '0') { errorText = ("شماره موبایل باید با 09 شروع شود"); return(false); } else if (control.SelectionStart == 1 && keyChar != '9') { errorText = ("شماره موبایل باید با 09 شروع شود"); return(false); } else { string text = control.GetNewText(keyChar); if (text.Length > 11) { errorText = ("شماره موبایل باید 11 رقمی باشد"); return(false); } } } break; case InputBoxValidationHelper.InputTypes.NationalCode: if (!char.IsControl(keyChar) && !char.IsDigit(keyChar)) { errorText = ("فقط عدد وارد کنید"); return(false); } else if (char.IsDigit(keyChar)) { //if (keyChar == '-' && (control.SelectionStart != 3 && control.SelectionStart != 10)) //{ // errorText = ("فقط عدد وارد کنید"); // return false; //} //else //{ string text = control.GetNewText(keyChar); if (text.Length > 12) { errorText = ("کد ملی نباید از 12 حرف بیشتر باشد"); return(false); } //} } break; case InputBoxValidationHelper.InputTypes.Email: break; default: throw new Exception(); } } errorText = null; return(true); }