Exemple #1
0
 private void DatePromptOnAction(DatePromptResult result)
 {
     if (result.Ok)
     {
         ResultText = $"DatePrompt:{result.SelectedDate.ToString()}";
     }
     else
     {
         ResultText = "DatePrompt: キャンセル";
     }
 }
Exemple #2
0
        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
        }