private void ResetProperties()
        {
            Title = OriginalTitle;


            TimesheetId = OriginalTimesheetId;


            // Unhook propertyChanged eventhandlers for ProjectTimeItems
            if (ProjectTimeItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(ProjectTimeItems, ProjectTimeItems_Item_PropertyChanged, attach: false);
            }
            ProjectTimeItems = OriginalProjectTimeItems == null ? null : GenericCopier <ObservableCollection <ObservableProjectTaskTimesheetItem> > .DeepCopy(OriginalProjectTimeItems);

            // Hookup propertyChanged eventhandlers for ProjectTimeItems
            if (ProjectTimeItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(ProjectTimeItems, ProjectTimeItems_Item_PropertyChanged, attach: true);
            }


            // Unhook propertyChanged eventhandlers for NonProjectActivityItems
            if (NonProjectActivityItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(NonProjectActivityItems, NonProjectActivityItems_Item_PropertyChanged, attach: false);
            }
            NonProjectActivityItems = OriginalNonProjectActivityItems == null ? null : GenericCopier <ObservableCollection <ObservableProjectTaskTimesheetItem> > .DeepCopy(OriginalNonProjectActivityItems);

            // Hookup propertyChanged eventhandlers for NonProjectActivityItems
            if (NonProjectActivityItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(NonProjectActivityItems, NonProjectActivityItems_Item_PropertyChanged, attach: true);
            }


            RequiredHours = OriginalRequiredHours == null ? null : GenericCopier <ObservableCollection <TimeSpan> > .DeepCopy(OriginalRequiredHours);


            TotalRequiredHours = OriginalTotalRequiredHours;


            // Unhook propertyChanged eventhandlers for DummyTimeEntry
            if (DummyTimeEntry != null)
            {
                DummyTimeEntry.PropertyChanged -= DummyTimeEntry_PropertyChanged;
            }
            DummyTimeEntry = OriginalDummyTimeEntry == null ? null : GenericCopier <ObservableTimeEntry> .DeepCopy(OriginalDummyTimeEntry);

            // Hookup propertyChanged eventhandlers for DummyTimeEntry
            if (DummyTimeEntry != null)
            {
                DummyTimeEntry.PropertyChanged += DummyTimeEntry_PropertyChanged;
            }


            DummyValueTypeCollection = OriginalDummyValueTypeCollection == null ? null : GenericCopier <ObservableCollection <int> > .DeepCopy(OriginalDummyValueTypeCollection);
        }
        private void ResetProperties()
        {
            Title = OriginalTitle;


            TimesheetId = OriginalTimesheetId;


            // Unhook propertyChanged eventhandlers for ProjectTimeItems
            if (ProjectTimeItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(ProjectTimeItems, ProjectTimeItems_Item_PropertyChanged, attach: false);
            }
            ProjectTimeItems = OriginalProjectTimeItems == null ? null : GenericCopier <ObservableCollection <ObservableProjectTaskTimesheetItem> > .DeepCopy(OriginalProjectTimeItems);

            // Hookup propertyChanged eventhandlers for ProjectTimeItems
            if (ProjectTimeItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(ProjectTimeItems, ProjectTimeItems_Item_PropertyChanged, attach: true);
            }


            // Unhook propertyChanged eventhandlers for NonProjectActivityItems
            if (NonProjectActivityItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(NonProjectActivityItems, NonProjectActivityItems_Item_PropertyChanged, attach: false);
            }
            NonProjectActivityItems = OriginalNonProjectActivityItems == null ? null : GenericCopier <ObservableCollection <ObservableProjectTaskTimesheetItem> > .DeepCopy(OriginalNonProjectActivityItems);

            // Hookup propertyChanged eventhandlers for NonProjectActivityItems
            if (NonProjectActivityItems != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(NonProjectActivityItems, NonProjectActivityItems_Item_PropertyChanged, attach: true);
            }


            RequiredHours = OriginalRequiredHours == null ? null : GenericCopier <ObservableCollection <TimeSpan> > .DeepCopy(OriginalRequiredHours);


            TotalRequiredHours = OriginalTotalRequiredHours;


            // Unhook propertyChanged eventhandlers for Totals
            if (Totals != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(Totals, Totals_Item_PropertyChanged, attach: false);
            }
            Totals = OriginalTotals == null ? null : GenericCopier <ObservableCollection <ObservableHoursSummary> > .DeepCopy(OriginalTotals);

            // Hookup propertyChanged eventhandlers for Totals
            if (Totals != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(Totals, Totals_Item_PropertyChanged, attach: true);
            }
        }
        private void ResetProperties()
        {
            // Unhook propertyChanged eventhandlers for ProjectCode
            if (ProjectCode != null)
            {
                ProjectCode.PropertyChanged -= ProjectCode_PropertyChanged;
            }
            ProjectCode = OriginalProjectCode == null ? null : GenericCopier <ObservablePickListItem> .DeepCopy(OriginalProjectCode);

            // Hookup propertyChanged eventhandlers for ProjectCode
            if (ProjectCode != null)
            {
                ProjectCode.PropertyChanged += ProjectCode_PropertyChanged;
            }


            // Unhook propertyChanged eventhandlers for TaskCode
            if (TaskCode != null)
            {
                TaskCode.PropertyChanged -= TaskCode_PropertyChanged;
            }
            TaskCode = OriginalTaskCode == null ? null : GenericCopier <ObservablePickListItem> .DeepCopy(OriginalTaskCode);

            // Hookup propertyChanged eventhandlers for TaskCode
            if (TaskCode != null)
            {
                TaskCode.PropertyChanged += TaskCode_PropertyChanged;
            }


            // Unhook propertyChanged eventhandlers for TimeEntries
            if (TimeEntries != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(TimeEntries, TimeEntries_Item_PropertyChanged, attach: false);
            }
            TimeEntries = OriginalTimeEntries == null ? null : GenericCopier <ObservableCollection <ObservableTimeEntry> > .DeepCopy(OriginalTimeEntries);

            // Hookup propertyChanged eventhandlers for TimeEntries
            if (TimeEntries != null)
            {
                ListUtility.AttachPropertyChangedEventHandlers(TimeEntries, TimeEntries_Item_PropertyChanged, attach: true);
            }
        }