public void DeleteFollowingReadings() { //Alle nachfolgenden Termine finden MeterReading[] followingReadings; if (m_SelectedReading.DueDate.IsAllDay) { followingReadings = m_MeterReadings.Where(flr => flr.DueDate.Begin.Date >= m_SelectedReading.DueDate.Begin.Date) .ToArray(); } else { followingReadings = m_MeterReadings.Where(flr => flr.DueDate.Begin >= m_SelectedReading.DueDate.Begin) .ToArray(); } //Serie ggf. löschen if (!m_MeterReadings.Except(followingReadings) .Any()) { m_Repository.DeleteObject(Model); } else { //Ende der alten Serie anpassen if (EndsWithDate) { Model.RepeatUntilDate = m_SelectedReading.DueDate.Begin; } else { Model.NumberOfRecurrences = Model.NumberOfRecurrences - followingReadings.Count(); } } //Alle folgenden Termine löschen foreach (var followingReading in followingReadings) { DeleteReadingFromRepository(followingReading); } m_Repository.Save(); TryClose(); }
public void RemoveMeter() { var meterViewModel = SelectedMeter; m_Repository.DeleteObject(meterViewModel.Model.MapPosition); m_Repository.Meter.Remove(meterViewModel.Model); CloseEditor(); NotifyOfPropertyChange(() => FilteredMeters); Save(); }