示例#1
0
        /// <summary>
        /// Adds the permissions for the specified <paramref name="permission"/>
        /// </summary>
        /// <param name="permission">The permission group to add scopes for.</param>
        /// <param name="options">The <see cref="ScopeOptions"/> indicating read-only or all scopes for a given permission group.</param>
        /// <returns>The builder instance with the permissions added.</returns>
        public SendGridPermissionsBuilder AddPermissionsFor(SendGridPermission permission, ScopeOptions options = ScopeOptions.All)
        {
            var scopesToAdd = BuildScopes(permission, options);

            ThrowIfViolatesMutualExclusivity(scopesToAdd);
            this.addedScopes.AddRange(scopesToAdd);
            return(this);
        }
示例#2
0
        /// <summary>
        /// Builds the specified options.
        /// </summary>
        /// <param name="permission">The permission group to build the scopes list for.</param>
        /// <param name="requestedOptions">The options.</param>
        /// <returns>
        /// A final list of scopes to use for this permission filtered by the requested options
        /// </returns>
        private string[] BuildScopes(SendGridPermission permission, ScopeOptions requestedOptions)
        {
            if (requestedOptions == ScopeOptions.ReadOnly)
            {
                return(allPermissions[permission].Where(x => x.EndsWith(".read")).ToArray());
            }

            return(allPermissions[permission].ToArray());
        }