Beispiel #1
0
        public MemberViewModel CreateFromModel(MemberCreationViewModel model)
        {
            if (!model.Validate() || _standardProperties.Except(model.Properties, new PropertyNameComparer()).Any() || string.IsNullOrEmpty(model.Type))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            var name     = model.Properties.Single(p => p.Name == "Name").Value;
            var email    = model.Properties.Single(p => p.Name == "Email").Value;
            var password = model.Properties.Single(p => p.Name == "Password").Value;

            var member = (Member)Services.MemberService.CreateMember(email, email, name, model.Type);

            foreach (var property in model.Properties.Except(_standardProperties, new PropertyNameComparer()))
            {
                member.SetPropertyValue(property.Name, property.Value);
            }

            Services.MemberService.Save(member);
            Services.MemberService.SavePassword(member, password);
            Services.MemberService.AssignRole(member.Id, "AllUsers");

            EventAggregator.Instance.Publish(new MemberCreated(member));

            return(new MemberViewModel(member));
        }
Beispiel #2
0
        public MemberCreationViewModel CreationModel(string type)
        {
            var memberType = Services.MemberTypeService.Get(type);

            if (memberType == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            var propertyGroups = memberType.PropertyGroups;
            var typeProperties = memberType.CompositionPropertyTypes
                                 .Except(propertyGroups.SelectMany(p => p.PropertyTypes)) //Remove anything that is not a "Generic Property"
                                 .Where(p => p.PropertyEditorAlias != "Umbraco.NoEdit")
                                 .OrderBy(p => p.SortOrder)
                                 .Select(p => new PropertyViewModel()
            {
                Name            = p.Alias,
                Prompt          = p.Name,
                Type            = p.PropertyEditorAlias,
                IsMandatory     = p.Mandatory,
                AvailableValues = Services.DataTypeService.GetPreValuesByDataTypeId(p.DataTypeDefinitionId),
                Information     = p.HelpText
            }
                                         );

            var viewModel = new MemberCreationViewModel()
            {
                Type       = type,
                Properties = _standardProperties.Concat(typeProperties)
            };

            return(viewModel);
        }