public ObservableDummyTestObject(DummyTestObject dummyTestObject) : this()
        {
            _isTrackingEnabled = false;


            OriginalTitle                    = dummyTestObject.Title;
            OriginalTimesheetId              = dummyTestObject.TimesheetId;
            OriginalProjectTimeItems         = new ObservableCollection <ObservableProjectTaskTimesheetItem>(dummyTestObject.ProjectTimeItems.Select(x => new ObservableProjectTaskTimesheetItem(x)).ToList());
            OriginalNonProjectActivityItems  = new ObservableCollection <ObservableProjectTaskTimesheetItem>(dummyTestObject.NonProjectActivityItems.Select(x => new ObservableProjectTaskTimesheetItem(x)).ToList());
            OriginalRequiredHours            = new ObservableCollection <TimeSpan>(dummyTestObject.RequiredHours);
            OriginalTotalRequiredHours       = dummyTestObject.TotalRequiredHours;
            OriginalDummyTimeEntry           = new ObservableTimeEntry(dummyTestObject.DummyTimeEntry);
            OriginalDummyValueTypeCollection = new ObservableCollection <int>(dummyTestObject.DummyValueTypeCollection);


            // Set the properties to the Original property values
            ResetProperties();
            ProjectTimeItems.CollectionChanged         += ProjectTimeItems_CollectionChanged;
            NonProjectActivityItems.CollectionChanged  += NonProjectActivityItems_CollectionChanged;
            RequiredHours.CollectionChanged            += RequiredHours_CollectionChanged;
            DummyValueTypeCollection.CollectionChanged += DummyValueTypeCollection_CollectionChanged;
            DummyTimeEntry.PropertyChanged             += DummyTimeEntry_PropertyChanged;
            ResetChangeTracking();
            _isTrackingEnabled = true;
            Initialize();
        }
        public ObservableDummyTestObject()
        {
            InitializeChangeTracker();
            _isTrackingEnabled = false;


            Title                    = default(string);
            TimesheetId              = default(string);
            ProjectTimeItems         = null;
            NonProjectActivityItems  = null;
            RequiredHours            = null;
            TotalRequiredHours       = new TimeSpan();
            DummyTimeEntry           = new ObservableTimeEntry();
            DummyValueTypeCollection = null;
            _isTrackingEnabled       = true;
        }
        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);
        }