Exemple #1
0
        public OperationalQueryType(
            ICircuitBreakerPolicyRepository circuitBreakerPolicyRepository,
            IChaosPolicyRepository chaosPolicyRepository)
        {
            Name        = "Operations";
            Description = "Query operations scoped to service operations";

            FieldAsync <ListGraphType <CircuitBreakerPolicyType> >(
                "CircuitBreakerPolicies",
                "Gets the circuit breaker policies.",
                resolve: async(fieldContext) =>
            {
                return(await circuitBreakerPolicyRepository
                       .GetAllAsync(
                           fieldContext.UserContext as ClaimsPrincipal,
                           "",
                           fieldContext.CancellationToken));
            });

            FieldAsync <ListGraphType <ChaosPolicyType> >(
                "ChaosPolicies",
                "Gets the chaos policies.",
                resolve: async(fieldContext) =>
            {
                return(await chaosPolicyRepository
                       .GetAllAsync(
                           fieldContext.UserContext as ClaimsPrincipal,
                           "",
                           fieldContext.CancellationToken));
            });
        }
Exemple #2
0
        public ChaosPolicySubscriptionType(
            IChaosPolicyRepository chaosPolicyRepository)
        {
            _chaosPolicyRepository = chaosPolicyRepository;

            AddField(
                new EventStreamFieldType
            {
                Name       = "chaosPolicyChanged",
                Type       = typeof(ChaosPolicyType),
                Resolver   = new FuncFieldResolver <ChaosPolicyEntity>(ResolveChaosPolicy),
                Subscriber = new EventStreamResolver <ChaosPolicyEntity>(Subscribe)
            });
        }
Exemple #3
0
        public OperationalSubscriptionType(
            ICircuitBreakerPolicyRepository circuitBreakerPolicyRepository,
            IChaosPolicyRepository chaosPolicyRepository)
        {
            Field <CircuitBreakerPolicySubscriptionType>(
                "circuitBreakerPolicyEvents",
                resolve: (context) =>
            {
                return(new CircuitBreakerPolicySubscriptionType(circuitBreakerPolicyRepository));
            });

            Field <ChaosPolicySubscriptionType>(
                "chaosPolicyEvents",
                resolve: (context) =>
            {
                return(new ChaosPolicySubscriptionType(chaosPolicyRepository));
            });
        }
        public OperationalMutationType(
            ICircuitBreakerPolicyRepository circuitBreakerPolicyRepository,
            IChaosPolicyRepository chaosPolicyRepository)
        {
            FieldAsync <CircuitBreakerPolicyType>(
                "updateCircuitBreakerPolicy",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <CircuitBreakerPolicyInputType> >
            {
                Name = "circuitBreakerPolicy"
            }),
                resolve: async(context) =>
            {
                var circuitBreakerPolicy = context.GetArgument <CircuitBreakerPolicyInput>("circuitBreakerPolicy");
                return(await circuitBreakerPolicyRepository.UpdateAsync(
                           context.UserContext as ClaimsPrincipal,
                           circuitBreakerPolicy,
                           context.CancellationToken));
            });

            FieldAsync <ChaosPolicyType>(
                "updateChaosPolicy",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <ChaosPolicyInputType> >
            {
                Name = "chaosPolicy"
            }),
                resolve: async(context) =>
            {
                var chaosPolicy = context.GetArgument <ChaosPolicyInput>("chaosPolicy");
                return(await chaosPolicyRepository.UpdateAsync(
                           context.UserContext as ClaimsPrincipal,
                           chaosPolicy,
                           context.CancellationToken));
            });
        }