private void OnSelectDateInternal(DateTime selectedDate, bool shouldLetOpenDatePicker) { // stop propagation - needed? DateTime selectedDateWithTime = selectedDate.Add(timeOfDay); List <DateTime>?dateRange = DateUtilities.GetDateRangeArray(selectedDate, DateRangeType, FirstDayOfWeek, WorkWeekDays); if (DateRangeType != DateRangeType.Day) { dateRange = GetBoundedDateRange(dateRange, MinDate, MaxDate); } dateRange = dateRange.Where(d => !GetIsRestrictedDate(d)).ToList(); OnSelectDate.InvokeAsync(new SelectedDateResult() { Date = selectedDateWithTime, SelectedDateRange = dateRange, ShouldLetOpenDatePicker = shouldLetOpenDatePicker }); // Navigate to next or previous month if needed if (AutoNavigateOnSelection && selectedDateWithTime.Month != NavigatedDate.Month) { int compareResult = DateTime.Compare(selectedDateWithTime.Date, NavigatedDate.Date); if (compareResult < 0) { OnSelectPrevMonth(); } else if (compareResult > 0) { OnSelectNextMonth(); } } }
protected async Task OnSelectDateInternal(SelectedDateResult result) { SelectedDate = result.Date; await OnSelectDate.InvokeAsync(result); await ValueChanged.InvokeAsync(result.Date); await RangeChanged.InvokeAsync(result.SelectedDateRange); }
protected async Task OnSelectDateInternal(SelectedDateResult result) { SelectedDate = result.Date; CascadedEditContext?.NotifyFieldChanged(FieldIdentifier); await OnSelectDate.InvokeAsync(result); await ValueChanged.InvokeAsync(result.Date); await RangeChanged.InvokeAsync(result.SelectedDateRange); }
protected void OnSelectedDate(SelectedDateResult selectedDateResult) { //skip calendar props OnSelectedDate callback, not implemented through DatePicker SelectedDate = selectedDateResult.Date; FormattedDate = FormatDateInternal(selectedDateResult.Date); ErrorMessage = ""; OnSelectDate.InvokeAsync(selectedDateResult.Date); ValueChanged.InvokeAsync(selectedDateResult.Date); CalendarDismissed(); }
protected void OnSelectedDate(SelectedDateResult selectedDateResult) { //skip calendar props OnSelectedDate callback, not implemented through DatePicker SelectedDate = selectedDateResult.Date; FormattedDate = FormatDateInternal(selectedDateResult.Date); ErrorMessage = ""; CascadedEditContext?.NotifyFieldChanged(FieldIdentifier); OnSelectDate.InvokeAsync(selectedDateResult.Date); ValueChanged.InvokeAsync(selectedDateResult.Date); if (!selectedDateResult.ShouldLetOpenDatePicker) { CalendarDismissed(); } }
private void ValidateTextInput() { if (IsDatePickerShown) { return; } var inputValue = FormattedDate; if (AllowTextInput) { DateTime date = DateTime.MinValue; if (!string.IsNullOrWhiteSpace(inputValue)) { if (SelectedDate != DateTime.MinValue && FormatDate != null && FormatDateInternal(SelectedDate) == inputValue) { return; } else { date = ParseDateFromString(inputValue); // Check if date is minvalue, or date is Invalid Date if (date == DateTime.MinValue) { // Reset invalid input field, if formatting is available if (FormatDate != null) { date = SelectedDate; FormattedDate = FormatDateInternal(date); } ErrorMessage = InvalidInputErrorMessage; //StateHasChanged(); } else { // Check against optional date boundaries if (IsDateOutOfBounds(date, MinDate, MaxDate)) { ErrorMessage = IsOutOfBoundsErrorMessage; //StateHasChanged(); } else { SelectedDate = date; ErrorMessage = ""; // When formatting is available. If formatted date is valid, but is different from input, update with formatted date // This occurs when an invalid date is entered twice if (FormatDate != null && FormatDateInternal(date) != inputValue) { FormattedDate = FormatDateInternal(date); } } } } } else { ErrorMessage = IsRequired ? IsRequiredErrorMessage : ""; } OnSelectDate.InvokeAsync(date); ValueChanged.InvokeAsync(date); } else if (IsRequired && string.IsNullOrWhiteSpace(inputValue)) { ErrorMessage = IsRequiredErrorMessage; } }