public IVersionedUpdateCommandHandler <TCommand> CreateVersionedCommand <TCommand>() where TCommand : IVersionedUpdateCommand
 {
     if (_resolutionContext.IsRegistered <IAsyncVersionedUpdateCommandHandler <TCommand> >())
     {
         return(_resolutionContext.Resolve <IAsyncVersionedUpdateCommandHandler <TCommand> >());
     }
     else
     {
         return(_resolutionContext.Resolve <ISyncVersionedUpdateCommandHandler <TCommand> >());
     }
 }
Пример #2
0
        /// <summary>
        /// Creates an instance of a role initializer for the specified role
        /// definition if one has been implemented; otherwise returns null
        /// </summary>
        /// <param name="roleDefinition">The role to find an initializer for</typeparam>
        /// <returns>IRoleInitializer if one has been implemented; otherwise null</returns>
        public IRoleInitializer Create(IRoleDefinition roleDefinition)
        {
            Condition.Requires(roleDefinition).IsNotNull();

            // Never add permission to the super admin role
            if (roleDefinition is SuperAdminRole)
            {
                return(null);
            }

            var type = typeof(IRoleInitializer <>).MakeGenericType(roleDefinition.GetType());

            if (_resolutionContext.IsRegistered(type))
            {
                return((IRoleInitializer)_resolutionContext.Resolve(type));
            }
            else if (roleDefinition is AnonymousRole)
            {
                // We use a default initializer just for the anonymous role
                // as it's the only built in role with permissions
                return(new DefaultAnonymousRoleInitializer());
            }

            return(null);
        }
Пример #3
0
        private List <PageModuleDisplayModelMapperOutput> MapGeneric <T>(IEnumerable <IEntityVersionPageModule> versionModules, WorkFlowStatusQuery workflowStatus) where T : IPageModuleDataModel
        {
            var mapperType = typeof(IPageModuleDisplayModelMapper <T>);

            if (!_resolutionContext.IsRegistered(mapperType))
            {
                string msg = @"{0} does not implement IPageModuleDisplayModel and no custom mapper could be found. You must create 
                               a class that implements IPageModuleDisplayModelMapper<{0}> if you are using a custom display model. Full type name: {1}";
                throw new ApplicationException(string.Format(msg, typeof(T).Name, typeof(T).FullName));
            }

            var mapper     = (IPageModuleDisplayModelMapper <T>)_resolutionContext.Resolve(typeof(IPageModuleDisplayModelMapper <T>));
            var dataModels = new List <PageModuleDisplayModelMapperInput <T> >();

            foreach (var pageModule in versionModules)
            {
                var mapperModel = new PageModuleDisplayModelMapperInput <T>();
                mapperModel.DataModel       = (T)_dbUnstructuredDataSerializer.Deserialize(pageModule.SerializedData, typeof(T));
                mapperModel.VersionModuleId = pageModule.GetVersionModuleId();
                dataModels.Add(mapperModel);
            }

            return(mapper.Map(dataModels, workflowStatus).ToList());
        }