├── Directory.Build.props
├── Source
├── ChangeTracking.Tests
│ ├── AssemblyInfo.cs
│ ├── Lead.cs
│ ├── OrderDetail.cs
│ ├── Address.cs
│ ├── IRevertibleChangeTrackingTests.cs
│ ├── InventoryUpdate.cs
│ ├── INotifyCollectionChangedTests.cs
│ ├── ChangeTracking.Tests.csproj
│ ├── GraphTests.cs
│ ├── Order.cs
│ ├── Helper.cs
│ ├── InternalTests.cs
│ ├── SpeedTest.cs
│ ├── DoNoTrackTests.cs
│ ├── IEditableObjectTests.cs
│ ├── IBindingListTests.cs
│ ├── ProxyTests.cs
│ ├── INotifyPropertyChangedTests.cs
│ ├── IChangeTrackableCollectionTests.cs
│ └── IChangeTrackableTests.cs
├── ChangeTracking
│ ├── IInterceptorSettings.cs
│ ├── IChangeTrackingManager.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ICollectionPropertyTrackable.cs
│ ├── IComplexPropertyTrackable.cs
│ ├── Internal
│ │ ├── IChangeTrackableInternal.cs
│ │ ├── IRevertibleChangeTrackingInternal.cs
│ │ ├── IEditableObjectInternal.cs
│ │ ├── ChangeTrackingSettings.cs
│ │ ├── Extensions.cs
│ │ ├── Utils.cs
│ │ └── ProxyTargetMap.cs
│ ├── DoNoTrackAttribute.cs
│ ├── ChangeStatus.cs
│ ├── ChangeTrackingInterceptorSelector.cs
│ ├── IChangeTrackingFactory.cs
│ ├── IChangeTrackableCollection.cs
│ ├── Extensions.cs
│ ├── ChangeTracking.csproj
│ ├── ChangeTrackingProxyGenerationHook.cs
│ ├── IChangeTrackable.cs
│ ├── Core.cs
│ ├── ChangeTrackingBindingList.cs
│ ├── EditableObjectInterceptor.cs
│ ├── NotifyPropertyChangedInterceptor.cs
│ ├── ChangeTrackingCollectionInterceptor.cs
│ ├── CollectionPropertyInterceptor.cs
│ ├── ComplexPropertyInterceptor.cs
│ ├── ChangeTrackingFactory.cs
│ └── ChangeTrackingInterceptor.cs
└── ChangeTracking.sln
├── .gitattributes
├── appveyor.yml
├── License.md
├── .gitignore
└── README.md
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | latest
4 |
5 |
--------------------------------------------------------------------------------
/Source/ChangeTracking.Tests/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
--------------------------------------------------------------------------------
/Source/ChangeTracking.Tests/Lead.cs:
--------------------------------------------------------------------------------
1 | namespace ChangeTracking.Tests
2 | {
3 | [DoNoTrack]
4 | public class Lead
5 | {
6 | public virtual int LeadId { get; set; }
7 | }
8 | }
--------------------------------------------------------------------------------
/Source/ChangeTracking/IInterceptorSettings.cs:
--------------------------------------------------------------------------------
1 | namespace ChangeTracking
2 | {
3 | internal interface IInterceptorSettings
4 | {
5 | bool IsInitialized { get; set; }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Source/ChangeTracking/IChangeTrackingManager.cs:
--------------------------------------------------------------------------------
1 | namespace ChangeTracking
2 | {
3 | internal interface IChangeTrackingManager
4 | {
5 | bool Delete();
6 | bool UnDelete();
7 | }
8 | }
--------------------------------------------------------------------------------
/Source/ChangeTracking/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 |
3 | [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
4 | [assembly: InternalsVisibleTo("ChangeTracking.Tests")]
--------------------------------------------------------------------------------
/Source/ChangeTracking/ICollectionPropertyTrackable.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace ChangeTracking
4 | {
5 | internal interface ICollectionPropertyTrackable
6 | {
7 | IEnumerable