예제 #1
0
 internal void InitFromCreationInformation(RoleDefinitionCreationInformation creation)
 {
     if (creation != null)
     {
         base.ObjectData.Properties["Description"]     = creation.Description;
         base.ObjectData.Properties["Name"]            = creation.Name;
         base.ObjectData.Properties["Order"]           = creation.Order;
         base.ObjectData.Properties["BasePermissions"] = creation.BasePermissions;
     }
 }
예제 #2
0
        public RoleDefinition Add(RoleDefinitionCreationInformation parameters)
        {
            ClientRuntimeContext context = base.Context;

            if (base.Context.ValidateOnClient)
            {
                if (parameters == null)
                {
                    throw ClientUtility.CreateArgumentNullException("parameters");
                }
                if (parameters != null)
                {
                    if (parameters.Name == null)
                    {
                        throw ClientUtility.CreateArgumentNullException("parameters.Name");
                    }
                    if (parameters.Name != null && parameters.Name.Length == 0)
                    {
                        throw ClientUtility.CreateArgumentException("parameters.Name");
                    }
                    if (parameters.Name != null && parameters.Name.Length > 255)
                    {
                        throw ClientUtility.CreateArgumentException("parameters.Name");
                    }
                    if (parameters.Name != null && !Regex.Match(parameters.Name, "^[^\\[\\]/\\\\:\\|<>\\+=;,\\?\\*'@]*$").Success)
                    {
                        throw ClientUtility.CreateArgumentException("parameters.Name");
                    }
                    if (parameters.Description != null && parameters.Description.Length > 512)
                    {
                        throw ClientUtility.CreateArgumentException("parameters.Description");
                    }
                    if (parameters.BasePermissions == null)
                    {
                        throw ClientUtility.CreateArgumentNullException("parameters.BasePermissions");
                    }
                }
            }
            RoleDefinition roleDefinition = new RoleDefinition(context, new ObjectPathMethod(context, base.Path, "Add", new object[]
            {
                parameters
            }));

            roleDefinition.Path.SetPendingReplace();
            ObjectIdentityQuery objectIdentityQuery = new ObjectIdentityQuery(roleDefinition.Path);

            context.AddQueryIdAndResultObject(objectIdentityQuery.Id, roleDefinition);
            context.AddQuery(objectIdentityQuery);
            base.AddChild(roleDefinition);
            roleDefinition.InitFromCreationInformation(parameters);
            return(roleDefinition);
        }