Beispiel #1
0
        /// <summary>
        /// Get the settings which correspond to a configuration section name.
        /// </summary>
        /// <param name="configurationSectionName">The name of the configuraton section.</param>
        public Settings Get(string configurationSectionName)
        {
            if (configurationSectionName == null)
            {
                throw new ArgumentNullException(nameof(configurationSectionName));
            }

            return(settingsCache.Get(configurationSectionName));
        }
Beispiel #2
0
        public void ReleaseService(
            TisServiceKey oServiceKey,
            ITisServiceInfo serviceInfo = null,
            object oService             = null)
        {
            if (oService == null && IsInstantiated(oServiceKey))
            {
                oService = m_oCreatorsCache.Get(oServiceKey);
            }

            if (oService != null)
            {
                // Obtain service creator
                ITisServiceCreator oCreator = GetCreator(oServiceKey);

                oCreator.ReleaseService(oService);
            }
        }
        /// <summary>
        /// Get a registered storage provider.
        /// </summary>
        /// <param name="providerName">The name under which the provider is registered or null for the default.</param>
        /// <returns>Returns the requested storage provider.</returns>
        public Storage.IStorageProvider GetStorageProvider(string providerName = null)
        {
            if (providerName == null)
            {
                providerName = String.Empty;
            }

            return(storageProvidersCache.Get(providerName));
        }
        /// <summary>
        /// Get the combined access right of a set of disposition types.
        /// </summary>
        /// <param name="dispositionTypes">The set of disposition types.</param>
        /// <returns>Returns the combined access right.</returns>
        public AccessRight GetAccessRightOfDispositionTypes(IEnumerable <DispositionType> dispositionTypes)
        {
            if (dispositionTypes == null)
            {
                throw new ArgumentNullException(nameof(dispositionTypes));
            }

            var dispositionTypeCodeNames = new EquatableReadOnlyBag <string>(dispositionTypes.Select(dt => dt.CodeName));

            return(dispositionTypesAccessRightsCache.Get(dispositionTypeCodeNames));
        }
        /// <summary>
        /// Get the access right derived from the user's roles,
        /// including those speified in <see cref="User.Roles"/> proeprty of the <see cref="User"/>
        /// and those implied by <see cref="PermissionsSetup.DefaultRolesForAuthenticated"/>
        /// or <see cref="PermissionsSetup.DefaultRolesForAnonymous"/>.
        /// </summary>
        /// <param name="user">The user whose set of specified and implied roles to check.</param>
        /// <returns>Returns the combined access right.</returns>
        private AccessRight GetRolesAccessRight(U user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (user.RegistrationStatus == RegistrationStatus.Revoked)
            {
                return(nullAccessRight);
            }

            // Combine default roles and user roles.

            IReadOnlyList <string> defaultRoleCodeNames;

            if (user.IsAnonymous)
            {
                defaultRoleCodeNames = lazyAccessMapper.Value.DefaultRolesForAnonymous;
            }
            else
            {
                defaultRoleCodeNames = lazyAccessMapper.Value.DefaultRolesForAuthenticated;
            }

            string[] roleCodeNames = new string[user.Roles.Count + defaultRoleCodeNames.Count];

            int i = 0;

            // Add default roles.
            for (i = 0; i < defaultRoleCodeNames.Count; i++)
            {
                roleCodeNames[i] = defaultRoleCodeNames[i];
            }

            // Add user roles.
            foreach (var role in user.Roles)
            {
                roleCodeNames[i++] = role.CodeName;
            }

            return(rolesAccessRightsCache.Get(new EquatableReadOnlyBag <string>(roleCodeNames)));
        }
        /// <summary>
        /// Obtain <see cref="ActionExecutionModelMetadata"/>
        /// for an instance derived from <see cref="ActionExecutionModel"/>.
        /// </summary>
        /// <param name="metadataProvider">The metadata provider to </param>
        /// <param name="metadataDetailsProvider"></param>
        /// <param name="actionExecutionModel"></param>
        /// <returns>Returns the model metadata.</returns>
        public static ActionExecutionModelMetadata GetMetadata(
            IModelMetadataProvider metadataProvider,
            ICompositeMetadataDetailsProvider metadataDetailsProvider,
            ActionExecutionModel actionExecutionModel)
        {
            if (metadataProvider == null)
            {
                throw new ArgumentNullException(nameof(metadataProvider));
            }
            if (metadataDetailsProvider == null)
            {
                throw new ArgumentNullException(nameof(metadataDetailsProvider));
            }
            if (actionExecutionModel == null)
            {
                throw new ArgumentNullException(nameof(actionExecutionModel));
            }

            var key = new ActionExecutionModelMetadataKey(actionExecutionModel, metadataProvider, metadataDetailsProvider);

            return(metadataCache.Get(key));
        }