/// <summary> /// Raises the DateValidationError event. /// </summary> /// <param name="e">A DatePickerDateValidationErrorEventArgs that contains the event data.</param> protected virtual void OnDateValidationError(DatePickerDateValidationErrorEventArgs e) { EventHandler <DatePickerDateValidationErrorEventArgs> handler = this.DateValidationError; if (handler != null) { handler(this, e); } }
// iT SHOULD RETURN NULL IF THE STRING IS NOT VALID, RETURN THE DATETIME VALUE IF IT IS VALID /// <summary> /// Input text is parsed in the correct format and changed into a DateTime object. /// If the text can not be parsed TextParseError Event is thrown. /// </summary> private DateTime?ParseText(string text) { DateTime newSelectedDate; // TryParse is not used in order to be able to pass the exception to the TextParseError event try { newSelectedDate = DateTime.Parse(text, DateTimeHelper.GetCurrentDateFormat()); if (Calendar.IsValidDateSelection(this._calendar, newSelectedDate)) { return(newSelectedDate); } else { DatePickerDateValidationErrorEventArgs dateValidationError = new DatePickerDateValidationErrorEventArgs(new ArgumentOutOfRangeException("text", SR.Get(SRID.Calendar_OnSelectedDateChanged_InvalidValue)), text); OnDateValidationError(dateValidationError); if (dateValidationError.ThrowException) { throw dateValidationError.Exception; } } } catch (FormatException ex) { DatePickerDateValidationErrorEventArgs textParseError = new DatePickerDateValidationErrorEventArgs(ex, text); OnDateValidationError(textParseError); if (textParseError.ThrowException && textParseError.Exception != null) { throw textParseError.Exception; } } return(null); }
// iT SHOULD RETURN NULL IF THE STRING IS NOT VALID, RETURN THE DATETIME VALUE IF IT IS VALID /// <summary> /// Input text is parsed in the correct format and changed into a DateTime object. /// If the text can not be parsed TextParseError Event is thrown. /// </summary> private DateTime?ParseText(string text) { DateTime newSelectedDate; // TryParse is not used in order to be able to pass the exception to the TextParseError event try { newSelectedDate = ParsePersianDate(text); if (PersianCalendar.IsValidDateSelection(this._persianCalendar, newSelectedDate)) { return(newSelectedDate); } else { DatePickerDateValidationErrorEventArgs dateValidationError = new DatePickerDateValidationErrorEventArgs(new ArgumentOutOfRangeException("text", "SelectedDate value is not valid."), text); OnDateValidationError(dateValidationError); if (dateValidationError.ThrowException) { throw dateValidationError.Exception; } } } catch (FormatException ex) { DatePickerDateValidationErrorEventArgs textParseError = new DatePickerDateValidationErrorEventArgs(ex, text); OnDateValidationError(textParseError); if (textParseError.ThrowException && textParseError.Exception != null) { throw textParseError.Exception; } } return(null); }