public object Clone()
        {
            var clone = new ObservableTimeEntry();

            clone.LoggedTime = LoggedTime;


            clone.ExtraTime = ExtraTime;


            clone.Notes = Notes;


            clone.WorkDetailId = WorkDetailId;


            clone.AttachEventHandlers();
            clone.AcceptChanges();
            return(clone);
        }
        public void AcceptChanges()
        {
            OriginalTitle = _title;


            OriginalTimesheetId = _timesheetId;


            foreach (var item in _projectTimeItems)
            {
                item.AcceptChanges();
            }
            OriginalProjectTimeItems = GenericCopier <ObservableCollection <ObservableProjectTaskTimesheetItem> > .DeepCopy(_projectTimeItems);


            foreach (var item in _nonProjectActivityItems)
            {
                item.AcceptChanges();
            }
            OriginalNonProjectActivityItems = GenericCopier <ObservableCollection <ObservableProjectTaskTimesheetItem> > .DeepCopy(_nonProjectActivityItems);


            OriginalRequiredHours = GenericCopier <ObservableCollection <TimeSpan> > .DeepCopy(_requiredHours);


            OriginalTotalRequiredHours = _totalRequiredHours;


            _dummyTimeEntry.AcceptChanges();
            OriginalDummyTimeEntry = GenericCopier <ObservableTimeEntry> .DeepCopy(_dummyTimeEntry);


            OriginalDummyValueTypeCollection = GenericCopier <ObservableCollection <int> > .DeepCopy(_dummyValueTypeCollection);


            ResetChangeTracking();
        }