public Task <IdentityManagerResult <CreateResult> > CreateRoleAsync(IEnumerable <PropertyValue> properties)
        {
            var errors = ValidateRoleProperties(properties);

            if (errors.Any())
            {
                return(Task.FromResult(new IdentityManagerResult <CreateResult>(errors.ToArray())));
            }

            var role            = new InMemoryRole();
            var createPropsMeta = GetMetadata().RoleMetadata.GetCreateProperties();

            foreach (var prop in properties)
            {
                var result = SetRoleProperty(createPropsMeta, role, prop.Type, prop.Value);
                if (!result.IsSuccess)
                {
                    return(Task.FromResult(new IdentityManagerResult <CreateResult>(result.Errors.ToArray())));
                }
            }

            if (roles.Any(x => x.Name.Equals(role.Name, StringComparison.OrdinalIgnoreCase)))
            {
                return(Task.FromResult(new IdentityManagerResult <CreateResult>("Role name already in use.")));
            }

            roles.Add(role);

            return(Task.FromResult(new IdentityManagerResult <CreateResult>(new CreateResult()
            {
                Subject = role.ID
            })));
        }
        public Task<IdentityManagerResult<CreateResult>> CreateRoleAsync(IEnumerable<PropertyValue> properties)
        {
            var errors = ValidateRoleProperties(properties);
            if (errors.Any())
            {
                return Task.FromResult(new IdentityManagerResult<CreateResult>(errors.ToArray()));
            }

            var role = new InMemoryRole();
            var createPropsMeta = GetMetadata().RoleMetadata.GetCreateProperties();
            foreach (var prop in properties)
            {
                var result = SetRoleProperty(createPropsMeta, role, prop.Type, prop.Value);
                if (!result.IsSuccess)
                {
                    return Task.FromResult(new IdentityManagerResult<CreateResult>(result.Errors.ToArray()));
                }
            }

            if (roles.Any(x=>x.Name.Equals(role.Name, StringComparison.OrdinalIgnoreCase)))
            {
                return Task.FromResult(new IdentityManagerResult<CreateResult>("Role name already in use."));
            }

            roles.Add(role);

            return Task.FromResult(new IdentityManagerResult<CreateResult>(new CreateResult() { Subject = role.ID }));
        }
Example #3
0
        public static ICollection <InMemoryRole> Get(int random = 0)
        {
            var roles = new HashSet <InMemoryRole>
            {
                new InMemoryRole {
                    ID          = Guid.Parse("991d965f-1f84-4360-90e4-8f6deac7b9bc").ToString(),
                    Name        = "Admin",
                    Description = "They run the show"
                },
                new InMemoryRole {
                    ID          = Guid.Parse("5f292677-d3d2-4bf9-a6f8-e982d08e1377").ToString(),
                    Name        = "Manager",
                    Description = "They pay the bills"
                },
            };

            for (var i = 0; i < random; i++)
            {
                var user = new InMemoryRole
                {
                    Name = GenName()
                };
                roles.Add(user);
            }

            return(roles);
        }
Example #4
0
        public static ICollection<InMemoryRole> Get(int random = 0)
        {
            var roles = new HashSet<InMemoryRole>
            {
                new InMemoryRole{
                    ID = Guid.Parse("991d965f-1f84-4360-90e4-8f6deac7b9bc").ToString(),
                    Name = "Admin",
                    Description = "They run the show"
                },
                new InMemoryRole{
                    ID = Guid.Parse("5f292677-d3d2-4bf9-a6f8-e982d08e1377").ToString(),
                    Name = "Manager",
                    Description = "They pay the bills"
                },
            };

            for (var i = 0; i < random; i++)
            {
                var user = new InMemoryRole
                {
                    Name = GenName()
                };
                roles.Add(user);
            }

            return roles;
        }
        private string GetRoleProperty(PropertyMetadata property, InMemoryRole role)
        {
            string value;

            if (property.TryGet(role, out value))
            {
                return(value);
            }

            throw new Exception("Invalid property type " + property.Type);
        }
        private IdentityManagerResult SetRoleProperty(IEnumerable <PropertyMetadata> propsMeta, InMemoryRole role, string type, string value)
        {
            IdentityManagerResult result;

            if (propsMeta.TrySet(role, type, value, out result))
            {
                return(result);
            }

            throw new InvalidOperationException("Invalid Property Type : " + type);
        }
        private IdentityManagerResult SetRoleProperty(IEnumerable<PropertyMetadata> propsMeta, InMemoryRole role, string type, string value)
        {
            IdentityManagerResult result;
            if (propsMeta.TrySet(role, type, value, out result))
            {
                return result;
            }

            throw new InvalidOperationException("Invalid Property Type : " + type);
        }
        private string GetRoleProperty(PropertyMetadata property, InMemoryRole role)
        {
            string value;
            if (property.TryGet(role, out value))
            {
                return value;
            }

            throw new Exception("Invalid property type " + property.Type);
        }