/// <summary>
        /// Checks if a feature is active in the given FeatureCollection.
        /// </summary>
        /// <param name="features">FeatureCollection to check in</param>
        /// <param name="featureID">ID of the feature to check</param>
        /// <param name="noRetry">Use regular ExecuteQuery</param>
        /// <returns>True if active, false otherwise</returns>
        private static async Task <bool> IsFeatureActiveInternal(FeatureCollection features, Guid featureID, bool noRetry = false)
        {
            var featureIsActive = false;

            features.ClearObjectData();

            features.Context.Load(features);
            if (noRetry)
            {
                string clientTag = $"{PnPCoreUtilities.PnPCoreVersionTag}:ProcessFeatureInternal";
                if (clientTag.Length > 32)
                {
                    clientTag = clientTag.Substring(0, 32);
                }
                features.Context.ClientTag = clientTag;

                // Don't update this to ExecuteQueryRetry
                await features.Context.ExecuteQueryAsync();
            }
            else
            {
                await features.Context.ExecuteQueryRetryAsync();
            }

            var iprFeature = features.GetById(featureID);

            iprFeature.EnsureProperties(f => f.DefinitionId);

            if (iprFeature != null && iprFeature.IsPropertyAvailable("DefinitionId") && !iprFeature.ServerObjectIsNull.Value && iprFeature.DefinitionId.Equals(featureID))
            {
                featureIsActive = true;
            }

            return(featureIsActive);
        }
        private static bool IsFeatureActiveInternal(FeatureCollection features, Guid featureID, bool noRetry = false)
#endif
        {
            var featureIsActive = false;

            features.ClearObjectData();

            features.Context.Load(features);
            if (noRetry)
            {
                string clientTag = $"{PnPCoreUtilities.PnPCoreVersionTag}:ProcessFeatureInternal";
                if (clientTag.Length > 32)
                {
                    clientTag = clientTag.Substring(0, 32);
                }
                features.Context.ClientTag = clientTag;

#if NETSTANDARD2_0
                (features.Context as ClientContext).FormDigestHandlingEnabled = false;
#endif

                // Don't update this to ExecuteQueryRetry
#if !ONPREMISES
                await features.Context.ExecuteQueryAsync();
#else
                features.Context.ExecuteQuery();
#endif
            }
            else
            {
#if !ONPREMISES
                await features.Context.ExecuteQueryRetryAsync();
#else
                features.Context.ExecuteQueryRetry();
#endif
            }

            var iprFeature = features.GetById(featureID);
            iprFeature.EnsureProperties(f => f.DefinitionId);

            if (iprFeature != null && iprFeature.IsPropertyAvailable("DefinitionId") && !iprFeature.ServerObjectIsNull.Value && iprFeature.DefinitionId.Equals(featureID))
            {
                featureIsActive = true;
            }

            return(featureIsActive);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Checks if a feature is active in the given FeatureCollection.
        /// </summary>
        /// <param name="features">FeatureCollection to check in</param>
        /// <param name="featureID">ID of the feature to check</param>
        /// <returns>True if active, false otherwise</returns>
        private static bool IsFeatureActiveInternal(FeatureCollection features, Guid featureID)
        {
            bool featureIsActive = false;

            features.ClearObjectData();

            features.Context.Load(features);
            features.Context.ExecuteQueryRetry();

            Feature iprFeature = features.GetById(featureID);

            iprFeature.EnsureProperties(f => f.DefinitionId);

            if (iprFeature != null && iprFeature.IsPropertyAvailable("DefinitionId") && !iprFeature.ServerObjectIsNull.Value && iprFeature.DefinitionId.Equals(featureID))
            {
                featureIsActive = true;
            }

            return(featureIsActive);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Checks if a feature is active in the given FeatureCollection.
        /// </summary>
        /// <param name="features">FeatureCollection to check in</param>
        /// <param name="featureID">ID of the feature to check</param>
        /// <param name="noRetry">Use regular ExecuteQuery</param>
        /// <returns>True if active, false otherwise</returns>
        private static bool IsFeatureActiveInternal(FeatureCollection features, Guid featureID, bool noRetry=false)
        {
            var featureIsActive = false;

            features.ClearObjectData();

            features.Context.Load(features);
            if (noRetry)
            {
                string clientTag = $"{PnPCoreUtilities.PnPCoreVersionTag}:ProcessFeatureInternal";
                if (clientTag.Length > 32)
                {
                    clientTag = clientTag.Substring(0, 32);
                }
                features.Context.ClientTag = clientTag;
                // Don't update this to ExecuteQueryRetry
                features.Context.ExecuteQuery();
            }
            else
            {
                features.Context.ExecuteQueryRetry();
            }

            var iprFeature = features.GetById(featureID);
            iprFeature.EnsureProperties(f => f.DefinitionId);

            if (iprFeature != null && iprFeature.IsPropertyAvailable("DefinitionId") && !iprFeature.ServerObjectIsNull.Value && iprFeature.DefinitionId.Equals(featureID))
            {
                featureIsActive = true;
            }

            return featureIsActive;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Checks if a feature is active in the given FeatureCollection.
        /// </summary>
        /// <param name="features">FeatureCollection to check in</param>
        /// <param name="featureID">ID of the feature to check</param>
        /// <returns>True if active, false otherwise</returns>
        private static bool IsFeatureActiveInternal(FeatureCollection features, Guid featureID)
        {
            bool featureIsActive = false;

            features.ClearObjectData();

            features.Context.Load(features);
            features.Context.ExecuteQueryRetry();

            Feature iprFeature = features.GetById(featureID);
            iprFeature.EnsureProperties(f => f.DefinitionId);

            if (iprFeature != null && iprFeature.IsPropertyAvailable("DefinitionId") && !iprFeature.ServerObjectIsNull.Value && iprFeature.DefinitionId.Equals(featureID))
            {
                featureIsActive = true;
            }

            return featureIsActive;
        }