From c3c9c100601b4526bcaa621038f4a2c2a275daa2 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Tue, 27 Aug 2013 15:48:58 +0200 Subject: [PATCH] Implementing a factory for readonly Member objects --- .../Factories/MemberReadOnlyFactory.cs | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs diff --git a/src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs b/src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs new file mode 100644 index 0000000000..021f67d9f0 --- /dev/null +++ b/src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using Umbraco.Core.Models; +using Umbraco.Core.Models.Membership; +using Umbraco.Core.Models.Rdbms; + +namespace Umbraco.Core.Persistence.Factories +{ + internal class MemberReadOnlyFactory : IEntityFactory + { + public IMembershipUser BuildEntity(MemberReadOnlyDto dto) + { + var member = new Member + { + Id = dto.NodeId, + CreateDate = dto.CreateDate, + UpdateDate = dto.UpdateDate, + Name = dto.Text, + Email = dto.Email, + Username = dto.LoginName, + Password = dto.Password, + ProviderUserKey = dto.UniqueId + }; + + //Create PropertyType + //Use PropertyType to create Property + var properties = new List(); + foreach (var property in dto.Properties) + { + var propertyType = new PropertyType(property.ControlId, + property.DbType.EnumParse(true)) + { + Id = property.PropertyTypeId, + Alias = property.Alias, + Name = property.Name, + Description = property.Description, + HelpText = property.HelpText, + Mandatory = property.Mandatory, + ValidationRegExp = property.ValidationRegExp + //SortOrder + //PropertyGroupId + }; + + propertyType.ResetDirtyProperties(false); + var prop = propertyType.CreatePropertyFromRawValue(property.GetValue, property.VersionId.Value, property.Id); + properties.Add(prop); + } + + member.Properties = new PropertyCollection(properties); + + member.SetProviderUserKeyType(typeof(Guid)); + member.ResetDirtyProperties(false); + return member; + } + + + public MemberReadOnlyDto BuildDto(IMembershipUser entity) + { + throw new System.NotImplementedException(); + } + } +} \ No newline at end of file