Exemplo n.º 1
0
        public void UnfillSelectedRange(DateTime date)
        {
            var firstDate = SelectedDates.OrderBy(d => d.Date).First();
            var lastDate  = SelectedDates.OrderBy(d => d.Date).Last();

            if (date.Equals(firstDate.Date))
            {
                var button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                if (button != null)
                {
                    ResetButton(button);
                }

                // next date will be the last
                date   = date.AddDays(1);
                button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                if (button != null)
                {
                    SetButton(button, true);
                }
            }
            else if (date.Equals(lastDate.Date))
            {
                var button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                if (button != null)
                {
                    ResetButton(button);
                }

                // previous date will be the last
                date   = date.AddDays(-1);
                button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                if (button != null)
                {
                    SetButton(button, false, true);
                }
            }
            else
            {
                // set clicked date as last date
                var button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                if (button != null)
                {
                    SetButton(button, false, true);
                }

                // disable to the right
                date = date.AddDays(1);
                while (date <= lastDate.Date)
                {
                    button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                    if (button != null)
                    {
                        ResetButton(button);
                    }

                    date = date.AddDays(1);
                }
            }
        }
Exemplo n.º 2
0
        public void FillSelectedRange(DateTime date)
        {
            var firstDate = SelectedDates.OrderBy(d => d.Date).First();
            var lastDate  = SelectedDates.OrderBy(d => d.Date).Last();

            if (date < firstDate)
            {
                var isFirst = true;
                while (date < firstDate.Date)
                {
                    var button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                    if (button != null)
                    {
                        SetButton(button, isFirst);
                        isFirst = false;
                    }

                    date = date.AddDays(1);
                }

                if (date < lastDate)
                {
                    // change button
                    var button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                    if (button != null)
                    {
                        var spD = SpecialDates?.FirstOrDefault(s => s.Date.Date == button.Date.Value.Date);
                        SetButtonSelected(button, spD);
                    }
                }
            }
            else if (date > lastDate.Date)
            {
                var isLast = true;
                while (date > lastDate.Date)
                {
                    var button2 = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                    if (button2 != null)
                    {
                        SetButton(button2, false, isLast);
                        isLast = false;
                    }

                    date = date.AddDays(-1);
                }

                if (date > firstDate)
                {
                    // change button
                    var button = buttons.Find(b => b.Date.HasValue && b.Date.Value.Date == date && b.IsEnabled);
                    if (button != null)
                    {
                        var spD = SpecialDates?.FirstOrDefault(s => s.Date.Date == button.Date.Value.Date);
                        SetButtonSelected(button, spD);
                    }
                }
            }

            // set margin icons
            SetFirstIcon(SelectedDates.OrderBy(d => d.Date).First());
            SetLastIcon(lastDate = SelectedDates.OrderBy(d => d.Date).Last());
        }