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); } } }
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()); }