private void DatePromptOnAction(DatePromptResult result) { if (result.Ok) { ResultText = $"DatePrompt:{result.SelectedDate.ToString()}"; } else { ResultText = "DatePrompt: キャンセル"; } }
private async void SetStartReservation(object sender, FocusEventArgs e) { var DateEntrySender = sender as Picker; dateResult = new DatePromptResult(true, new DateTime()); dateResult = await UserDialogs.Instance.DatePromptAsync(new DatePromptConfig()); if (dateResult != null && dateResult.Ok) { var timeResult = await UserDialogs.Instance.TimePromptAsync(new TimePromptConfig { MinuteInterval = 30, Use24HourClock = true }); var minutes = 0; var ExtraHour = 0; if (timeResult.Ok) { if (timeResult.SelectedTime.Minutes < 7) { minutes = 0; } else if (timeResult.SelectedTime.Minutes > 7 && timeResult.SelectedTime.Minutes < 22) { minutes = 15; } else if (timeResult.SelectedTime.Minutes >= 22 && timeResult.SelectedTime.Minutes < 37) { minutes = 30; } else if (timeResult.SelectedTime.Minutes >= 37 && timeResult.SelectedTime.Minutes < 52) { minutes = 45; } else { ExtraHour++; minutes = 0; } Start = new DateTime(dateResult.SelectedDate.Year, dateResult.SelectedDate.Month, dateResult.SelectedDate.Day, timeResult.SelectedTime.Hours, minutes, 0, DateTimeKind.Local).AddHours(ExtraHour); if (Start <= DateTime.Now) { Start = new DateTime(); await DisplayAlert("Error", "Nie mozna wybrac daty z przeszlosci", "Ok"); } else { if (timeResult.SelectedTime.Minutes % 15 != 0) { await DisplayAlert("Uwaga", $"Zmieniono czas rezerwacji na {Start.Hour}:{Start.Minute}", "Ok"); } var SelectedDate = Start.ToString("yyyy-MM-dd HH:mm"); DateEntrySender.Items.Clear(); DateEntrySender.Items.Add(SelectedDate); DateEntrySender.SelectedItem = SelectedDate; } } dateResult = null; DateEntrySender.Unfocused -= SetStartReservation; } }
public override IDisposable DatePrompt(DatePromptConfig config) { #if WINDOWS_PHONE_APP throw new NotImplementedException(); #else var picker = new DatePickerControl(); if (config.MinimumDate != null) picker.DatePicker.MinDate = config.MinimumDate.Value; if (config.MaximumDate != null) picker.DatePicker.MaxDate = config.MaximumDate.Value; var popup = this.CreatePopup(picker); if (!config.IsCancellable) picker.CancelButton.Visibility = Visibility.Collapsed; else { picker.CancelButton.Content = config.CancelText; picker.CancelButton.Click += (sender, args) => { var result = new DatePromptResult(false, this.GetDateForCalendar(picker.DatePicker)); config.OnAction?.Invoke(result); popup.IsOpen = false; }; } picker.OkButton.Content = config.OkText; picker.OkButton.Click += (sender, args) => { var result = new DatePromptResult(true, this.GetDateForCalendar(picker.DatePicker)); config.OnAction?.Invoke(result); popup.IsOpen = false; }; if (config.SelectedDate != null) { picker.DatePicker.SelectedDates.Add(config.SelectedDate.Value); picker.DatePicker.SetDisplayDate(config.SelectedDate.Value); } return this.DispatchAndDispose( () => popup.IsOpen = true, () => popup.IsOpen = false ); #endif }