public UserManagementMetadata(UserMetadata userMetadata,
            RoleMetadata roleMetadata)
        {
            if (userMetadata == null)
            {
                throw new ArgumentNullException(nameof(userMetadata));
            }

            if (roleMetadata == null)
            {
                throw new ArgumentNullException(nameof(roleMetadata));
            }

            this.UserMetadata = userMetadata;
            this.RoleMetadata = roleMetadata;
        }
        public Task<UserManagementMetadata> GetMetadataAsync()
        {
           
                var createUserProperties = new List<PropertyMetadata>
            {
                new PropertyMetadata(PropertyTypes.String, Core.Constants.ClaimTypes.Name, "Name", true),
                new PropertyMetadata(PropertyTypes.Password, Core.Constants.ClaimTypes.Password, "Password", true),
                new PropertyMetadata(PropertyTypes.Email, Core.Constants.ClaimTypes.Email, "Email", true),
                new PropertyMetadata(PropertyTypes.String, Core.Constants.ClaimTypes.Role, "Role", false)
            };

            var updateUserProperties = new List<PropertyMetadata>
            {
                new PropertyMetadata(PropertyTypes.String, Core.Constants.ClaimTypes.Name, "Name", true)
              
            };
            

            var createRoleProperties = new List<PropertyMetadata>
            {
                new PropertyMetadata(PropertyTypes.String, Core.Constants.ClaimTypes.Name, "Name", true),
                new PropertyMetadata(PropertyTypes.String, Core.Constants.ClaimTypes.Description, "Description", true)
            };

            var updateRoleProperties = new List<PropertyMetadata>
            {
                new PropertyMetadata(PropertyTypes.String, Core.Constants.ClaimTypes.Description, "Description", true)
            };

                var userMetadata = new UserMetadata(true, true, true, updateUserProperties, createUserProperties);
                var roleMetadata = new RoleMetadata(true, true, Core.Constants.ClaimTypes.Role, updateRoleProperties, createRoleProperties);

                return Task.FromResult(new UserManagementMetadata(userMetadata, roleMetadata));  
        }