Commit Graph

38 Commits

Author SHA1 Message Date
Shannon
4a3525ece3 Fixes a memory leak caused by deep cloning
There was a memory leak with PublicAccessEntry during even unassignment which was not clearing the correct handler.
This goes a step further and adds a new ClearCollectionChangedEvents method for all observable collections used in umbraco
which allows fully clearing ALL event handlers instead of having to track specific ones. This will ensure there are no
unintended memory leaks in case end-users have assigned event handlers to the collection changed event which would
not be unassigned during deep cloning.
2021-01-12 13:41:50 +11:00
Stephan
bc987a825a Cleanup 2019-02-04 10:09:32 +01:00
Shannon
80165c3c0f Fixes allocations of property selectors, with nameof we save a bunch of both memory and initial reflection lookups 2019-02-04 19:52:04 +11:00
Stephan
f9967e2d7d Fix e25e509d84 breaking tests, fix original issue 2018-12-10 17:48:24 +01:00
Shannon
42f0d2b356 Fixes dirty tracking with resetting properties 2018-10-25 15:47:25 +11:00
Stephan
9320c1a061 Cleanup variants dirty tracking 2018-10-23 15:38:47 +02:00
Shannon
71fd47f452 Fixes issue of observable collections, event binding and deep cloning 2018-10-19 08:45:53 +11:00
Stephan
7a615133ff Renormalize 2018-06-29 19:52:40 +02:00
Stephan
d23933a5b1 DataType refactoring preparation - Entity refactoring 2018-01-15 13:28:35 +01:00
Stephan
b5856803e1 DataType refactoring preparation - Entity refactoring 2018-01-10 12:48:51 +01:00
Stephan
ef11fda272 More content refactoring (tests) 2017-11-15 08:53:20 +01:00
Stephan
c76403077f Normalize cr/lf/tab 2017-07-20 11:21:28 +02:00
Shannon
33ca761441 Updated all to use the ref parameter, tests are passing - now to see if they run any faster :) 2016-06-21 20:43:02 +02:00
Shannon
b5411a5402 Initial commit of refactor of better/more efficient in terms of mem and performance properpty selectors for our models, this also yields a much cleaner syntax. I have discovered one issue now which is that the PropertyChanged event now fires before the property value is actually set, this is why the lambda syntax existed before. Instead we can use a ref property for the SetPropertyValueAndDetectChanges methods which will work much nicer - and also potentially have less allocations. 2016-06-21 18:11:03 +02:00
Stephan
eb5589e064 Remove PropertyGroup.ParentId, sanitize Property groups/types 2015-11-17 16:55:14 +01:00
Shannon
bb8864f51b ensures that when setting the PropertyType's property on a PropertyGroup that the PropertyGroupId is set 2015-07-13 13:41:15 +02:00
Shannon
ece2e2359e Updates PropertyGroup's equality comparisons to: check the base comparison, then check for a case insensitive comparison with name, fixes GetHashCode to be consistent with the Equals method. 2015-04-08 11:31:14 +10:00
Shannon
a4949a1132 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2 2014-04-22 17:49:01 +10:00
Shannon
d772336c0f Fixes: U4-4695 Copy document type to new parent seems to lose some data, U4-4535 Create Copy method on the content type Service 2014-04-22 17:48:08 +10:00
Shannon
4f8485e7d9 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2 2014-04-22 14:00:28 +10:00
Shannon
c4046ecb32 Fixes 'Clone' methods to ensure a Deep clone is used 2014-04-22 13:48:51 +10:00
Shannon
7d556a0318 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Cache/CacheProviderExtensions.cs
	src/Umbraco.Core/Cache/DictionaryCacheProviderBase.cs
	src/Umbraco.Core/Cache/ICacheProvider.cs
	src/Umbraco.Core/Cache/ObjectCacheRuntimeCacheProvider.cs
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/PreValue.cs
	src/Umbraco.Core/Models/PropertyType.cs
	src/Umbraco.Core/Services/DataTypeService.cs
	src/Umbraco.Tests/Models/Collections/PropertyCollectionTests.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web/Models/PublishedProperty.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
2014-04-17 18:10:42 +10:00
Shannon
1f2e46a195 Simplifies much of the deep cloning with the DeepCloneHelper and adds tests 2014-04-16 13:39:42 +10:00
Shannon
58758e7a41 More work on deep cloning, have test passing for IContent 2014-04-15 13:52:49 +10:00
Shannon
b7f7775b89 adds initial commit of entity cloning 2014-02-20 22:34:54 +11:00
Shannon
e962e86c3c Merge remote-tracking branch 'origin/6.2.0' into 7.0.0
Conflicts:
	src/Umbraco.Core/Models/Rdbms/MemberReadOnlyDto.cs
	src/Umbraco.Core/Models/Rdbms/PropertyDataReadOnlyDto.cs
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/StringExtensions.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web.UI/umbraco/dialogs/ChangeDocType.aspx.cs
	src/Umbraco.Web/Umbraco.Web.csproj
2013-09-10 11:49:05 +10:00
Morten Christensen
186d5157ec Implementing the read only side of the MemberType/MemberTypeRepository.
PropertyTypes and PropertyGroups are loaded as part of the MemberType in one go.
MemberTypeRepository uses the same approach as the ContentTypeRepository and MediaTypeRepository for saving/updating.
Refactoring how the 9-PropertyType convention is handled.
2013-09-02 15:53:09 +02:00
Shannon
89ce60ef0f Merge remote-tracking branch 'origin/6.1.4' into 7.0.0
Conflicts:
	src/Umbraco.Core/Events/RecycleBinEventArgs.cs
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/SimilarNodeNameComparer.cs
	src/Umbraco.Web.UI/config/ExamineIndex.config
	src/Umbraco.Web/Strategies/DeleteFilesAfterEmptiedRecycleBin.cs
	src/Umbraco.Web/Umbraco.Web.csproj
2013-08-15 12:59:05 +10:00
Morten Christensen
ca71c59880 Fixes U4-2218 Document Type copy looses property tab assignment 2013-08-13 17:41:35 +02:00
Shannon
4b8fed9f06 Started converting content model mapping over to use AutoMapper to fix the composite tabs/properties. New unit tests for the mapping as well. 2013-07-25 15:31:26 +10:00
Shannon Deminick
ab8b0f4ebb Merge with 6.0.3 2013-03-21 20:39:33 +06:00
Morten Christensen
63de9e6691 Refactoring package installer to use the new PackagingService.
Refactoring ImportDocumentType dialog to import through the PackagingService.
Making a few corrections to the ProppertyGroup and PropertyType classes to support bulk saving.
2013-03-21 12:34:10 -01:00
Shannon Deminick
7ea87638f7 Updates all Entity models to use SetPropertyValueAndDetectChanges for setting all simple properties so that
tracking changes works the way it is supposed to. Creates a TracksChangesEntityBase class for any other entity
that wants to implement IRememberBeingDirty (now Entity inherits from this). Upgraded a bunch of other entities that
were not tracking changes properly.
2013-03-21 00:05:56 +06:00
Shannon Deminick
75d218d2e3 Updated how mappers for persistence work with the MapperFor attribute and have made BaseMapper public but have
kept all properties, etc.. internal just so that they can be found so we don't have to register them.
Updates unit test to ensure the plugin manager is init'd properly with the 'false' override. Ensures that the base
db test also initializes the plugin manager properly.
2013-03-13 01:09:29 +04:00
Shannon Deminick
da331b7408 Changed how model mappers work for persistence objects so we don't have to statically associate the mapper. 2013-03-07 22:27:47 +06:00
Morten Christensen
520a7f238d Refactoring ContentTypeControlNew and ContentControl 2013-02-22 16:25:45 -01:00
Morten@Thinkpad-X220
90108e344f Refactoring database changes from 4.10.0.
Implementing the contnet type composition as part of U4-956.
2012-10-10 07:15:51 -02:00
Morten@Thinkpad-X220
58ee5b4d55 Adding Property and PropertyCollection classes U4-924.
Adding PropertyGroup and PropertyGroupCollection classes U4-926.
Adding PropertyType and PropertyTypeCollection classes U4-925.
Adding DataTypeDefinition and DataTypeDatabaseType U4-927.
Had to update the Property ref. on page and DynamicDocumentExtensions because of a conflict with the new Property class.
2012-10-03 08:03:45 -02:00