예제 #1
0
        public static IRoutineHandlerAsync <TUser, TUserContext> GetUserHandlerAsync <TUser, TUserContext>(
            AspRoutineFeature aspRoutineFeature,
            Func <object> getInput,
            TUser user,
            TUserContext userContext,
            ContainerFactory containerFactory,
            MemberTag memberTag,
            ApplicationSettings applicationSettings,
            Func <TUserContext, string> configurationFor
            )
        {
            var composeLoggers = InjectedManager.ComposeNLogMemberLoggerFactory(aspRoutineFeature.TraceDocument.Builder);
            var logger         = new AdminkaRoutineHandlerFactory <TUserContext>(aspRoutineFeature.CorrelationToken,
                                                                                 InjectedManager.DefaultRoutineTagTransformException, composeLoggers,
                                                                                 applicationSettings.PerformanceCounters);
            var  @for      = configurationFor(userContext);
            var  container = containerFactory.CreateContainer(memberTag, @for);
            bool hasVerboseLoggingPrivilege = true;
            var  input          = getInput();
            var  routineHandler = logger.CreateLoggingHandler(memberTag, container, userContext, hasVerboseLoggingPrivilege, input);

            return(new ComplexRoutineHandlerAsync <TUser, TUserContext>(
                       closure => user,
                       routineHandler
                       ));
        }
예제 #2
0
 // Used as "pre-final-1"  stage to prepare container
 private AdminkaRoutineHandlerBaseAsync(
     ApplicationSettings applicationSettings,
     AdminkaRoutineHandlerFactory <TUserContext> routineLogger,
     IContainer container,
     MemberTag memberTag,
     TUserContext userContext,
     bool hasVerboseLoggingPrivilege,
     Func <TUserContext, string> getAuditStamp,
     object input) :
     this(
         applicationSettings,
         getAuditStamp,
         routineLogger.CreateLoggingHandler(memberTag, container, userContext,
                                            hasVerboseLoggingPrivilege,
                                            input)
         )
 {
 }
예제 #3
0
        public static ComplexRoutineHandlerAsync <StorageRoutineHandlerAsync <TUserContext>, TUserContext> GetContainerStorageHandlerAsync <TUserContext>(
            ContainerFactory containerFactory,
            MemberTag memberTag,
            AspRoutineFeature aspRoutineFeature,
            Func <object> getInput,
            TUserContext userContext,
            ApplicationSettings applicationSettings,
            //Func<TUserContext, string> getConfigurationFor,
            Func <TUserContext, string> getAuditStamp
            )
        {
            var adminkaRoutineHandlerFactory = new AdminkaRoutineHandlerFactory <TUserContext>(
                correlationToken: Guid.NewGuid(),
                InjectedManager.DefaultRoutineTagTransformException,
                InjectedManager.ComposeNLogMemberLoggerFactory(null),
                applicationSettings.PerformanceCounters);

            IHandlerAsync <RoutineClosure <TUserContext> > loggingHandler = adminkaRoutineHandlerFactory.CreateLoggingHandler(
                memberTag,
                containerFactory.CreateContainer(memberTag, getAuditStamp(userContext)),
                userContext,
                hasVerboseLoggingPrivilege: false,
                getInput());

            return(new ComplexRoutineHandlerAsync <StorageRoutineHandlerAsync <TUserContext>, TUserContext> /*AdminkaRoutineHandlerBase<TUserContext>*/ (
                       closure => new AuthenticationDomStorageRoutineHandlerAsync <TUserContext>(
                           applicationSettings.AdminkaStorageConfiguration,
                           userContext,
                           null,
                           new Handler <RoutineClosure <TUserContext>, RoutineClosure <TUserContext> >(
                               () => closure,
                               closure
                               ),
                           getAudit: uc => getAuditStamp(uc)
                           ),
                       loggingHandler
                       ));
        }