コード例 #1
0
        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();
        }
コード例 #2
0
        public void RemoveMeter()
        {
            var meterViewModel = SelectedMeter;

            m_Repository.DeleteObject(meterViewModel.Model.MapPosition);
            m_Repository.Meter.Remove(meterViewModel.Model);

            CloseEditor();
            NotifyOfPropertyChange(() => FilteredMeters);
            Save();
        }