Exemplo n.º 1
0
        public DateRangeDialog(DialogCoordinator dialogCoordinator, object viewModel, string title, string description,
                               DialogDateRangeEnum rangeType, string dateFromLabel, string dateToLabel, DateTime?defaultDateFrom, DateTime?defaultDateTo,
                               bool closeWindow, int buttonsCount = 1)
        {
            InitializeComponent();

            _dialogCoordinator = dialogCoordinator;
            _viewModel         = viewModel;

            TitleLabel.Text       = title;
            TitleLabel.FontWeight = FontWeights.Bold;
            TitleLabel.FontSize   = DescriptionLabel.FontSize * 1.5;

            DescriptionLabel.Text = description;

            OneDateDockPanel.Visibility   = Visibility.Collapsed;
            DateRangeDockPanel.Visibility = Visibility.Collapsed;
            TwoDateDockPanel.Visibility   = Visibility.Collapsed;

            switch (rangeType)
            {
            case DialogDateRangeEnum.OneDate:
                OneDateDockPanel.Visibility = Visibility.Visible;
                OneDateStartLabel.Content   = dateFromLabel;
                OneDateFrom.SelectedDate    = defaultDateFrom;
                break;

            case DialogDateRangeEnum.DateRange:
                DateRangeDockPanel.Visibility = Visibility.Visible;
                DateRangeStartLabel.Content   = dateFromLabel;
                DateRangeFromTo.BeginDate     = defaultDateFrom;
                DateRangeFromTo.EndDate       = defaultDateTo;
                break;

            case DialogDateRangeEnum.TwoDate:
                TwoDateDockPanel.Visibility = Visibility.Visible;
                TwoDateStartLabel.Content   = dateFromLabel;
                TwoDateEndLabel.Content     = dateToLabel;
                TwoDateFrom.SelectedDate    = defaultDateFrom;
                TwoDateTo.SelectedDate      = defaultDateTo;
                break;
            }

            Buttons = new List <Button>();
            InitializeButtons(buttonsCount);

            _closeWindow = closeWindow;
        }
Exemplo n.º 2
0
        public async Task <DialogDateRange> DisplayInputDateTimeAsync(string title, string description, DialogDateRangeEnum rangeType,
                                                                      string dateFromLabel, string dateToLabel = null, DateTime?defaultDateFrom = null, DateTime?defaultDateTo = null)
        {
            var ret    = null as DialogDateRange;
            var dialog = new Models.Dialogs.View.DateRangeDialog(_coordinator, _viewModel, title, description, rangeType, dateFromLabel, dateToLabel, defaultDateFrom, defaultDateTo, false, 2);

            dialog.Buttons[0].Content = "Cancel";
            dialog.Buttons[0].Click  += (sender, args) => ret = new DialogDateRange {
                DateFrom = null, DateTo = null
            };
            dialog.Buttons[1].Content = "OK";
            dialog.Buttons[1].Click  += (sender, args) =>

                                        ret = new DialogDateRange
            {
                DateFrom = rangeType == DialogDateRangeEnum.OneDate ? dialog.OneDateFrom.ToSafeDateTime() :
                           (rangeType == DialogDateRangeEnum.DateRange ? dialog.DateRangeFromTo.BeginDate.ToSafeDateTime() :
                            dialog.TwoDateFrom.ToSafeDateTime()),
                DateTo = rangeType == DialogDateRangeEnum.OneDate ? new DateTime() :
                         (rangeType == DialogDateRangeEnum.DateRange ? dialog.DateRangeFromTo.EndDate.ToSafeDateTime() :
                          dialog.TwoDateTo.ToSafeDateTime()),
            };

            var cd = await _coordinator.GetCurrentDialogAsync <Models.Dialogs.View.DateRangeDialog>(_viewModel);

            if (cd != null)
            {
                await _coordinator.HideMetroDialogAsync(_viewModel, cd);

                await _coordinator.ShowMetroDialogAsync(_viewModel, dialog);
            }
            else
            {
                await _coordinator.ShowMetroDialogAsync(_viewModel, dialog);
            }

            await dialog.WaitUntilUnloadedAsync();

            return(ret);
        }