Exemplo n.º 1
0
        /// <summary>
        /// Called by DayButton
        /// </summary>
        /// <param name="date"></param>
        public void DayButtonClicked(DateTime date)
        {
            if (DateSelectionMode == Dates.DateSelectionMode.SingleDate)
            {
                SelectedDate = date;
            }
            else
            {
                if (SelectedDates.Any(d => d == date))
                {
                    SelectedDates.Remove(date);
                }
                else
                {
                    SelectedDates.Add(date);
                }
            }

            if (Ref_DatePicker_DateRange != null)
            {
                Ref_DatePicker_DateRange.DateSelected(date);
            }

            if (Config.Events.OnDaySelected != null)
            {
                Config.Events.OnDaySelected.Invoke(date);
            }

            UpdateDisplay();

            // I would have preferred to have this react automatically to changes,
            // but that would mean setting up an observable list, which is an added
            // complication we don't need right now
            UpdateInputFieldText();
        }
Exemplo n.º 2
0
        private void DayPresenter_Unselected(object sender, SelectedDateChangedEventArgs e)
        {
            var dateTime = (DateTime)e.SelectedDate;

            _isInternalSet = true;
            if (SelectedDates == null)
            {
                SelectedDates = new ObservableCollection <DateTime>();
            }
            switch (Mode)
            {
            case CalendarXMode.Date:
                break;

            case CalendarXMode.DateRange:
                SelectedDate = null;
                break;

            case CalendarXMode.MultipleDate:
                if (SelectedDates.Contains(dateTime))
                {
                    SelectedDates.Remove(dateTime);
                }
                SelectedDate = null;
                break;
            }
            UpdateDays(CurrentYear, CurrentMonth);
            UpdateYears(CurrentYear, CurrentMonth);
            UpdateMonths(CurrentYear, CurrentMonth);
            _isInternalSet = false;
        }
Exemplo n.º 3
0
        protected void ResetButton(CalendarButton b)
        {
            if (b.Date.HasValue)
            {
                SelectedDates?.Remove(b.Date.Value.Date);
            }
            var spD = SpecialDates?.FirstOrDefault(s => s.Date.Date == b.Date.Value.Date);

            SetButtonNormal(b);
            if (spD != null)
            {
                SetButtonSpecial(b, spD);
            }
        }
        protected void calSelect_SelectionChanged(object sender, EventArgs e)
        {
            if (SelectedDates.Count() != 2 && calSelect.SelectedDate >= DateTime.Today)
            {
                if (!SelectedDates.Contains(calSelect.SelectedDate))
                {
                    SelectedDates.Add(calSelect.SelectedDate);
                }
                else
                {
                    SelectedDates.Remove(calSelect.SelectedDate);
                }
            }
            else if (SelectedDates.Count() == 2 && SelectedDates.Contains(calSelect.SelectedDate))
            {
                SelectedDates.Remove(calSelect.SelectedDate);
            }

            ViewState["SelectedDates"] = SelectedDates;
            int dayz = 0;

            if (SelectedDates.Count() == 2)
            {
                dayz = (SelectedDates[0] - SelectedDates[1]).Days;
                if (dayz < 0)
                {
                    dayz          = -dayz;
                    lblDates.Text = SelectedDates[0].ToString("dd/MM/yyyy") + " - " + SelectedDates[1].ToString("dd/MM/yyyy");
                }
                else
                {
                    lblDates.Text = SelectedDates[1].Date.ToString("dd/MM/yyyy") + " - " + SelectedDates[0].Date.ToString("dd/MM/yyyy");
                }
                txtDayz.Text = (dayz + 1).ToString();
            }
            else if (SelectedDates.Count() == 1)
            {
                dayz          = 1;
                txtDayz.Text  = (dayz).ToString();
                lblDates.Text = SelectedDates[0].ToString("dd/MM/yyyy");
            }
            else
            {
                txtDayz.Text  = "0";
                lblDates.Text = "";
            }
        }
Exemplo n.º 5
0
 private void OnDateLimitChanged()
 {
     _isInternalSet = true;
     if (SelectedDates == null)
     {
         SelectedDates = new ObservableCollection <DateTime>();
     }
     if (SelectedDate != null && MinDate != null && SelectedDate < MinDate)
     {
         var date = (DateTime)SelectedDate;
         if (SelectedDates.Contains(date))
         {
             SelectedDates.Remove(date);
         }
         SelectedDate = MinDate;
         SelectedDates.Add((DateTime)SelectedDate);
     }
     else if (SelectedDate != null && MaxDate != null && SelectedDate > MaxDate)
     {
         var date = (DateTime)SelectedDate;
         if (SelectedDates.Contains(date))
         {
             SelectedDates.Remove(date);
         }
         SelectedDate = MaxDate;
         SelectedDates.Add((DateTime)SelectedDate);
     }
     if (SelectedDates != null)
     {
         for (int i = SelectedDates.Count - 1; i >= 0; i--)
         {
             var date = SelectedDates[i];
             if (date < MinDate || date > MaxDate)
             {
                 SelectedDates.RemoveAt(i);
             }
         }
     }
     UpdateDays(CurrentYear, CurrentMonth);
     UpdateMonths(CurrentYear, CurrentMonth);
     UpdateYears(CurrentYear, CurrentMonth);
 }