Esempio n. 1
0
        public static RoleDefinition CreateRoleDefinition(this RoleDefinitionCollection roleDefinitions, RoleDefinitionCreationInformation roleDefCreateInfo)
        {
            RoleDefinition roleDefinition = roleDefinitions.Add(roleDefCreateInfo);

            roleDefinitions.Context.Load(roleDefinition);
            roleDefinitions.Context.ExecuteQuery();

            return(roleDefinition);
        }
Esempio n. 2
0
        /// <summary>
        /// Imports the new RoleDefinitions.
        /// </summary>
        /// <exception cref="ElementsMigrationException">If migration fails</exception>
        private void ImportNewRoleDefinitions()
        {
            Console.WriteLine("import new RoleDefinitions...");
            Logger.AddMessage("import new RoleDefinitions...");
            RoleDefinitionCollection sourceRoleDefinitionCollection = this.GetAllRollDefinitions(SourceClientContext);
            RoleDefinitionCollection targetRoleDefinitionCollection = this.GetAllRollDefinitions(TargetClientContext);

            HashSet <string> targetRoleDefinitionNames = targetRoleDefinitionCollection.ReadNames();

            foreach (var sourceRoleDefinition in sourceRoleDefinitionCollection)
            {
                if (!targetRoleDefinitionNames.Contains(sourceRoleDefinition.Name))
                {
                    Console.WriteLine("import roleDefinition '{0}'", sourceRoleDefinition.Name);
                    Logger.AddMessage("import RoleDefinition '" + sourceRoleDefinition.Name + "'");

                    RoleDefinitionCreationInformation creationObject = new RoleDefinitionCreationInformation();
                    creationObject.BasePermissions = sourceRoleDefinition.BasePermissions;
                    creationObject.Description     = sourceRoleDefinition.Description;
                    creationObject.Name            = sourceRoleDefinition.Name;
                    creationObject.Order           = sourceRoleDefinition.Order;

                    RoleDefinition targetRoleDefinition = targetRoleDefinitionCollection.Add(creationObject);
                    try
                    {
                        targetRoleDefinition.Tag = sourceRoleDefinition.Tag;
                    }
                    catch (PropertyOrFieldNotInitializedException)
                    {
                    }
                }
                else
                {
                    Console.WriteLine("don't have to import '{0}'", sourceRoleDefinition.Name);
                    Logger.AddMessage("don't have to import '" + sourceRoleDefinition.Name + "'");
                }
            }

            try
            {
                TargetClientContext.ExecuteQuery();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception during importing new RoleDefinition.", e);
                Logger.AddMessage("Exception during importing new RoleDefinition. Error = " + e.Message);
                throw new ElementsMigrationException("Exception during importing new RoleDefinition.", e);
            }
        }