public UploadPolicyResponse UploadFullPolicy(UpLoadPolicyRequest request)
        {
            OnWoking(this, new EventMsg {
                Status = RunStatus.Normal, PurchaserType = PolicyService.Enums.PurchaserType.Qunar, Msg = "------------------------------Start------------------------------------"
            });
            ShowMsg(this, new EventMsg()
            {
                Status = RunStatus.Normal, PurchaserType = PurchaserType.Qunar, Msg = DateTime.Now + ":开始上传政策"
            });
            IHandlerBuilder builder = new HandlerBuilder();

            builder.Use <QunarLoadFullPolicyMiddleware>() //载入全量政策中间件
            .Use <QunarFilterSplitMiddleware>()           //过滤并拆分中间件
            .Use <QunarFullDispatcherMiddleware>()        //全量分发政策中间件
            .Use <QunarFormatMiddleware>()                //先格式化成去哪儿格式并保存xml文件
            .Use <PackageZipFileMiddleware>()             //压缩成zip文件
            .Use <QunarUploadMiddleware>();               //上传到去哪儿服务器
            IHandlerContext context = new HandlerContext(request);
            IHandler        handler = new DefaultHandler(builder, ShowMsg);

            handler.Execute(context);
            OnWoking(this, new EventMsg {
                Status = RunStatus.Normal, PurchaserType = PolicyService.Enums.PurchaserType.Qunar, Msg = "-------------------------------End---------------------------------------"
            });

            return(context.UploadResponse);
        }
Esempio n. 2
0
        public ActionResult Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
            .Use <SignatureCheckHandlerMiddleware>()       //验证签名中间件。
            .Use <CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
            .Use <SessionSupportHandlerMiddleware>()       //会话支持中间件。
            .Use <IgnoreRepeatMessageHandlerMiddleware>()  //忽略重复的消息中间件。
            .Use <TestMessageHandlerMiddleware>()          //测试消息处理中间件。
            .Use <GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
            //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            var context = new HandlerContext(Request);

            //设置基本信息。
            context
            .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                                           "wxa4ab3e636e2eb702",
                                           "q0OlAOdGzpmm5B8HEqycylcn17nUp25HG04dr7KD6ET",
                                           "weixin"));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);

            weiXinHandler.Execute(context);

            return(new WeiXinResult(context));
        }
Esempio n. 3
0
        public ActionResult Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
            .Use <SignatureCheckHandlerMiddleware>()       //验证签名中间件。
            .Use <CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
            .Use <SessionSupportHandlerMiddleware>()       //会话支持中间件。
            .Use <IgnoreRepeatMessageHandlerMiddleware>()  //忽略重复的消息中间件。
            .Use <TestMessageHandlerMiddleware>()          //测试消息处理中间件。
            .Use <GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
                                                           //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            string content;

            using (var reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                content = reader.ReadToEnd();
            }

            var context = new HandlerContext(content);

            //设置基本信息。
            context
            .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                                           _weChatConfig.AppId,
                                           _weChatConfig.EncodingAesKey,
                                           _weChatConfig.Token));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);

            weiXinHandler.Execute(context);

            return(new WeiXinResult(context));
        }
Esempio n. 4
0
        private TimeRadioTask CreateInitialStateTask()
        {
            HandlerBuilder builder = new HandlerBuilder(radio);

            //base bulding
            for (int i = 0; i < 4; i++)
            {
                builder.BuildStep().FrequencyClamp(i, ClampState.Fixed);
            }
            builder.BuildStep().AntenaClamp(ClampState.Fixed);
            builder.BuildStep().Noise(generator.Noise);
            builder.BuildStep().Volume(generator.Volume);
            builder.BuildStep().Voltage(VoltageState.Broadcast1);
            builder.BuildStep().WorkMode(WorkModeState.Simplex);
            builder.BuildStep().Display(Turned.Off);
            builder.BuildStep().Power(Turned.Off);
            builder.BuildStep().FixedRangeStateSpecialized();
            builder.BuildStep().SubrangeSwitcherSpecialized();
            //end building

            //необходимо поменять на описание самого задания
            return(new TimeRadioTask(builder.Handler, false)
            {
                Description = "Установите органы управления в начальное положение."
            });
        }
Esempio n. 5
0
        public async Task <ActionResult> Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
#if !DEBUG
            .Use <SignatureCheckHandlerMiddleware>()       //验证签名中间件。
#endif
            .Use <CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
            .Use <SessionSupportHandlerMiddleware>()       //会话支持中间件。
            .Use <IgnoreRepeatMessageHandlerMiddleware>()  //忽略重复的消息中间件。
            .Use <CommandMessageHandlerMiddleware>()       //每日精华文章消息处理中间件。
            .Use <GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
            //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            var context = new HandlerContext(Request);

            //设置基本信息。
            context
            .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                                           ConfigurationManager.AppSettings["wx:AppId"],
                                           ConfigurationManager.AppSettings["wx:AppSecret"],
                                           "weixin"));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);
            await weiXinHandler.Execute(context);

            return(new WeiXinResult(context));
        }
 public RepeatPatternTests()
 {
     _builder = Handle
                .Required <Scalar>()
                .Required <IRepeater>()
                .Optional <SeparatorComma>();
 }
        public async Task<ActionResult> Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
#if !DEBUG
                .Use<SignatureCheckHandlerMiddleware>() //验证签名中间件。
#endif
                .Use<CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
                .Use<SessionSupportHandlerMiddleware>() //会话支持中间件。
                .Use<IgnoreRepeatMessageHandlerMiddleware>() //忽略重复的消息中间件。
                .Use<CommandMessageHandlerMiddleware>() //每日精华文章消息处理中间件。
                .Use<GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
            //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            var context = new HandlerContext(Request);

            //设置基本信息。
            context
                .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                    ConfigurationManager.AppSettings["wx:AppId"],
                    ConfigurationManager.AppSettings["wx:AppSecret"],
                    "weixin"));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);
            await weiXinHandler.Execute(context);

            return new WeiXinResult(context);
        }
        public void When_RequestExpired_Then_OnMessageExpiredIsCalled()
        {
            // arrange
            var onMessageExpiredMock = new Mock <Action <IMessageBus, AbstractConsumerSettings, object> >();
            var consumerSettings     = new HandlerBuilder <SomeRequest, SomeResponse>(new MessageBusSettings()).Topic(null).WithHandler <IRequestHandler <SomeRequest, SomeResponse> >().Instances(1).ConsumerSettings;

            consumerSettings.OnMessageExpired = onMessageExpiredMock.Object;

            var p = new ConsumerInstancePoolMessageProcessor <SomeRequest>(consumerSettings, _busMock.Bus, x => Array.Empty <byte>());

            var request        = new SomeRequest();
            var requestMessage = new MessageWithHeaders();

            requestMessage.SetHeader(ReqRespMessageHeaders.Expires, _busMock.CurrentTime.AddSeconds(-10));

            _busMock.BusMock.Setup(x => x.DeserializeRequest(typeof(SomeRequest), It.IsAny <byte[]>(), out requestMessage))
            .Returns(request);

            // act
            p.ProcessMessage(request).Wait();

            // assert
            _busMock.HandlerMock.Verify(x => x.OnHandle(It.IsAny <SomeRequest>(), It.IsAny <string>()), Times.Never); // the handler should not be called

            onMessageExpiredMock.Verify(x => x(_busMock.Bus, consumerSettings, request), Times.Once);                 // callback called once
        }
Esempio n. 9
0
        public ActionResult Index()
        {
            IHandlerBuilder builder = new HandlerBuilder();

            builder
                .Use<SignatureCheckHandlerMiddleware>() //验证签名中间件。
                .Use<CreateRequestMessageHandlerMiddleware>() //创建消息中间件(内置消息解密逻辑)。
                .Use<SessionSupportHandlerMiddleware>() //会话支持中间件。
                .Use<IgnoreRepeatMessageHandlerMiddleware>() //忽略重复的消息中间件。
                .Use<TestMessageHandlerMiddleware>() //测试消息处理中间件。
                .Use<GenerateResponseXmlHandlerMiddleware>(); //生成相应XML处理中间件(内置消息加密逻辑)。
            //                            .Use<AgentHandlerMiddleware>(new AgentRequestModel(new Uri("http://localhost:22479/Mutual")));

            var context = new HandlerContext(Request);

            //设置基本信息。
            context
                .SetMessageHandlerBaseInfo(new MessageHandlerBaseInfo(
                    "wxa4ab3e636e2eb702",
                    "q0OlAOdGzpmm5B8HEqycylcn17nUp25HG04dr7KD6ET",
                    "weixin"));

            IWeiXinHandler weiXinHandler = new DefaultWeiXinHandler(builder);
            weiXinHandler.Execute(context);

            return new WeiXinResult(context);
        }
Esempio n. 10
0
 public RepeatPatternTests()
 {
     _builder = Handle
         .Required<Scalar>()
         .Required<IRepeater>()
         .Optional<SeparatorComma>();
 }
        /// <summary>
        /// Configures NetSel handler builder.
        /// </summary>
        /// <param name="configuration">Instance of PageFactoryConfiguration.</param>
        /// <returns>Page factory configuration.</returns>
        public static PageFactoryConfiguration ConfigureNetSelHandlerBuilder(this PageFactoryConfiguration configuration)
        {
            var handlerBuilder = new HandlerBuilder();

            handlerBuilder.RegisterNetSelHandlerTypes();
            configuration.HandlerBuilder = handlerBuilder;
            return(configuration);
        }
Esempio n. 12
0
 public RepeatPatternTests()
 {
     _builder = Handle
                .Required <Scalar>()
                .Required <IRepeater>()
                .Optional <SeparatorComma>();
     Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
 }
        public async Task IfRequestIsInvalid_ShouldReturnErrors()
        {
            var handler = new HandlerBuilder()
                          .WithRequestInvalid()
                          .Build();

            var errors = await handler.Handle(new PayWithDebitRequest());

            errors.Should().NotBeEmpty();
        }
Esempio n. 14
0
        public void When_NewInstance_Then_DoesNotResolveHandlerInstances()
        {
            // arrange
            var consumerSettings = new HandlerBuilder <SomeRequest, SomeResponse>(new MessageBusSettings()).Topic(null).WithHandler <IRequestHandler <SomeRequest, SomeResponse> >().Instances(2).ConsumerSettings;

            // act
            var p = new ConsumerInstancePoolMessageProcessor <SomeRequest>(consumerSettings, _busMock.Bus, x => Array.Empty <byte>());

            // assert
            _busMock.DependencyResolverMock.Verify(x => x.Resolve(typeof(IRequestHandler <SomeRequest, SomeResponse>)), Times.Never);
        }
Esempio n. 15
0
        /// <summary>
        /// Starts to build a handler pipeline for the specified message type.
        /// </summary>
        /// <typeparam name="TMessage">The type of the message the pipeline will handle.</typeparam>
        /// <returns>A a handler builder to continue defining the pipeline.</returns>
        public IHandlerBuilder <TMessage> For <TMessage>()
        {
            var key = typeof(TMessage);
            List <NonGenericHandler> handlers = _handlersByMessageType.ContainsKey(key)
                ? _handlersByMessageType[key]
                : new List <NonGenericHandler>();

            var handlerBuilder = new HandlerBuilder <TMessage>(this);

            handlers.Add((message, ct) => handlerBuilder.Invoke((TMessage)message, ct));
            _handlersByMessageType[key] = handlers;

            return(handlerBuilder);
        }
        public async Task IfClientDoesNotHaveSufficienteBalance_ShouldReturnErrors()
        {
            var request = new PayWithDebitRequest {
                ClientId = 10, Value = 5
            };
            var handler = new HandlerBuilder()
                          .WithRequestValid()
                          .WithInsufficientBalance(request.ClientId, request.Value)
                          .Build();

            var errors = await handler.Handle(request);

            errors.Should().NotBeEmpty();
        }
        public async Task IfDailyEntryServiceFails_ShouldReturnErrors()
        {
            var request = new PayWithDebitRequest {
                ClientId = 10, Value = 5
            };
            var handler = new HandlerBuilder()
                          .WithRequestValid()
                          .WithSufficientBalance(request.ClientId, request.Value)
                          .WithDailyEntryServiceFailing(request.ClientId, request.Value)
                          .Build();

            var errors = await handler.Handle(request);

            errors.Should().NotBeEmpty();
        }
        public async Task IfRecurrentPaymentWasSaveWithSuccessfully_ShouldNotReturnErrors()
        {
            var request = new PayWithDebitRequest {
                ClientId = 10, Value = 5
            };

            var(handler, mockAssertions) = new HandlerBuilder()
                                           .WithRequestValid()
                                           .WithSufficientBalance(request.ClientId, request.Value)
                                           .BuildWithMock();

            var errors = await handler.Handle(request);

            errors.Should().BeEmpty();
            mockAssertions
            .ShouldCallRepository();
        }
Esempio n. 19
0
        public Task Register <TCommand>(Func <HandlerBuilder, CommandHandler <TCommand> > func)
            where TCommand : IntegrationMessage
        {
            _activator.Handle <TCommand>(async c =>
            {
                var builder = new HandlerBuilder(_getUow);
                var handler = func(builder);
                try
                {
                    await handler.Process(c);
                }
                catch (Exception)
                {
                    handler.Uow.Rollback();
                }
            });

            return(Task.CompletedTask);
        }
Esempio n. 20
0
        private TimeRadioTask CreateFrequencyTask(FrequencyParameter parameter = null)
        {
            HandlerBuilder builder = new HandlerBuilder(radio);

            //base bulding
            builder.BuildStep().WorkMode(generator.WorkMode);
            builder.BuildStep().Noise(generator.Noise);
            builder.BuildStep().Voltage(VoltageState.Broadcast1);
            builder.BuildStep().Power(generator.Power);
            builder.BuildStep().Display(generator.Display);
            builder.BuildStep().Volume(generator.Volume);
            builder.BuildStep().Frequency((parameter != null)?parameter.Frequency:InfoGenerator.Frequency).EscapeNext(TypeRadioAction.Antena);
            builder.BuildStep().Antena(generator.Antena);
            //end building

            return(new TimeRadioTask(builder.Handler)
            {
                Description = builder.Handler.Steps.Where(x => x.Type == TypeRadioAction.SetFreqyency).First().ToString()
            });
        }
Esempio n. 21
0
        private TimeRadioTask CreateFixFrequencyTask(FixFrequencyParameter parameter = null)
        {
            HandlerBuilder builder        = new HandlerBuilder(radio);
            var            fixedFrequency = (parameter == null)?generator.FixFrequency:parameter;

            //base bulding
            builder.BuildStep().WorkMode(generator.WorkMode);
            builder.BuildStep().Noise(generator.Noise);
            builder.BuildStep().Voltage(VoltageState.Broadcast1);
            builder.BuildStep().Display(generator.Display);
            builder.BuildStep().Power(generator.Power);
            builder.BuildStep().Volume(generator.Volume);

            builder.BuildStep().FixFrequency(fixedFrequency);
            builder.BuildStep().FixAntenna(fixedFrequency.Range, fixedFrequency.SubFrequency);
            //end building

            return(new TimeRadioTask(builder.Handler)
            {
                Description = builder.Handler.Steps.Where(x => x.Type == TypeRadioAction.SetFixFrequency).First().ToString()
            });
        }
Esempio n. 22
0
        public async Task Invoke(HttpContext context, RequestDelegate next)
        {
            string[] segments;
            var      route = SelectRoute(context, out segments);

            if (route == null)
            {
                await next(context);
            }
            else
            {
                context.Response.StatusCode = 200;

                context.SetSegments(segments);

                try
                {
                    if (route.Handler == null)
                    {
                        lock (route)
                        {
                            if (route.Handler == null)
                            {
                                route.Handler = HandlerBuilder.Build(route.Chain);
                            }
                        }
                    }

                    await route.Handler.Handle(context);
                }
                catch (Exception e)
                {
                    context.RequestServices.GetService <ILogger <HttpContext> >().LogError(new EventId(500), e, "Request Failed");
                    context.Response.StatusCode = 500;
                    await context.Response.WriteAsync(e.ToString());
                }
            }
        }
Esempio n. 23
0
        public void BuildsProperSettings()
        {
            // arrange
            var topic    = "topic";
            var settings = new MessageBusSettings();

            // act
            var subject = new HandlerBuilder <SomeRequest, SomeResponse>(settings)
                          .Topic(topic)
                          .Instances(3)
                          .WithHandler <SomeRequestMessageHandler>();

            // assert
            subject.ConsumerSettings.MessageType.Should().Be(typeof(SomeRequest));
            subject.MessageType.Should().Be(typeof(SomeRequest));
            subject.Topic.Should().Be(topic);
            subject.ConsumerSettings.Topic.Should().Be(topic);
            subject.ConsumerSettings.Instances.Should().Be(3);
            subject.ConsumerSettings.ConsumerType.Should().Be(typeof(SomeRequestMessageHandler));
            subject.ConsumerSettings.ConsumerMode.Should().Be(ConsumerMode.RequestResponse);
            subject.ConsumerSettings.IsRequestMessage.Should().BeTrue();
            subject.ConsumerSettings.ResponseType.Should().Be(typeof(SomeResponse));
        }
        public UploadPolicyResponse UpLoadIncrementPolicy(UpLoadPolicyRequest request, bool isTaskPolicy = true)
        {
            OnWoking(this, new EventMsg {
                Status = RunStatus.Normal, PurchaserType = PolicyService.Enums.PurchaserType.Qunar, Msg = "------------------------------Start------------------------------------"
            });
            QunarUploadPolicyRequest qunarIncrementRequest = CoreHelper.ChangeToChild <UpLoadPolicyRequest, QunarUploadPolicyRequest>(request);
            IHandlerBuilder          builder = new HandlerBuilder();

            if (isTaskPolicy == true)
            {
                builder.Use <QunarLoadIncrementalPolicyMiddleware>() //载入增量政策
                .Use <QunarFilterSplitMiddleware>()                  //过滤并拆分中间件
                .Use <QunarIncrementalDispatcherMiddleware>()        //增量分发政策中间件
                .Use <QunarFormatMiddleware>()                       //先格式化成去哪儿格式并保存xml文件
                .Use <PackageZipFileMiddleware>()                    //压缩成zip文件
                .Use <QunarUploadMiddleware>();                      //上传到去哪儿服务器
            }
            else//有现成的数据
            {
                builder.Use <QunarFilterRepeatUploadMiddleware>() //过滤不在上传列表的政策中间件
                .Use <QunarFilterSplitMiddleware>()               //过滤并拆分中间件
                .Use <QunarIncrementalDispatcherMiddleware>()     //增量分发政策中间件
                .Use <QunarFormatMiddleware>()                    //先格式化成去哪儿格式并保存xml文件
                .Use <PackageZipFileMiddleware>()                 //压缩成zip文件
                .Use <QunarUploadMiddleware>();                   //上传到去哪儿服务器
            }


            IHandlerContext context = new HandlerContext(request);
            IHandler        handler = new DefaultHandler(builder, ShowMsg);

            handler.Execute(context);
            OnWoking(this, new EventMsg {
                Status = RunStatus.Normal, PurchaserType = PolicyService.Enums.PurchaserType.Qunar, Msg = "-------------------------------End---------------------------------------"
            });
            return(context.UploadResponse);
        }
        public void WhenRequestFailsThenOnMessageFaultIsCalledAndErrorResponseIsSent()
        {
            // arrange
            var onMessageFaultMock = new Mock <Action <IMessageBus, AbstractConsumerSettings, object, Exception> >();
            var consumerSettings   = new HandlerBuilder <SomeRequest, SomeResponse>(new MessageBusSettings()).Topic(null).WithHandler <IRequestHandler <SomeRequest, SomeResponse> >().Instances(1).ConsumerSettings;

            consumerSettings.OnMessageFault = onMessageFaultMock.Object;

            var p = new ConsumerInstancePoolMessageProcessor <SomeRequest>(consumerSettings, _busMock.Bus, x => Array.Empty <byte>());

            var request        = new SomeRequest();
            var requestMessage = new MessageWithHeaders();
            var replyTo        = "reply-topic";
            var requestId      = "request-id";

            requestMessage.SetHeader(ReqRespMessageHeaders.RequestId, requestId);
            requestMessage.SetHeader(ReqRespMessageHeaders.ReplyTo, replyTo);
            _busMock.BusMock.Setup(x => x.DeserializeRequest(typeof(SomeRequest), It.IsAny <byte[]>(), out requestMessage))
            .Returns(request);

            var ex = new Exception("Something went bad");

            _busMock.HandlerMock.Setup(x => x.OnHandle(request, consumerSettings.Topic))
            .Returns(Task.FromException <SomeResponse>(ex));

            // act
            p.ProcessMessage(request).Wait();

            // assert
            _busMock.HandlerMock.Verify(x => x.OnHandle(request, consumerSettings.Topic),
                                        Times.Once); // handler called once

            onMessageFaultMock.Verify(
                x => x(_busMock.Bus, consumerSettings, request, ex), Times.Once); // callback called once
            _busMock.BusMock.Verify(
                x => x.ProduceResponse(request, requestMessage, It.IsAny <SomeResponse>(), It.Is <MessageWithHeaders>(m => m.Headers[ReqRespMessageHeaders.RequestId] == requestId), It.IsAny <ConsumerSettings>()));
        }
Esempio n. 26
0
        private TimeRadioTask CreatePrepareTask()
        {
            HandlerBuilder builder = new HandlerBuilder(radio);

            //base bulding
            builder.BuildStep().WorkMode(generator.WorkMode);
            builder.BuildStep().Noise(generator.Noise);
            builder.BuildStep().Voltage(VoltageState.Broadcast1);
            builder.BuildStep().Display(generator.Display);
            builder.BuildStep().Power(generator.Power);
            builder.BuildStep().Volume(generator.Volume);
            builder.BuildStep().Range(RangeState.FixedFrequency1);
            builder.BuildStep().FrequencyClamp(0, ClampState.Unfixed);
            builder.BuildStep().FrequencyClamp(0, ClampState.Fixed).EscapePrew(TypeRadioAction.UnscrewFrequencyClamp);
            builder.BuildStep().Subrange(0, Turned.On).EscapePrew(TypeRadioAction.UnscrewFrequencyClamp);
            builder.BuildStep().Antena(generator.Antena).EscapePrew(TypeRadioAction.UnscrewFrequencyClamp);
            builder.BuildStep().AntenaClamp(ClampState.Fixed).EscapePrew(TypeRadioAction.UnscrewFrequencyClamp);
            //end building

            return(new TimeRadioTask(builder.Handler)
            {
                Description = "Подготовьте радиостанцию к работе."
            });
        }
        /// <summary>
        /// Configure queue name that incoming requests (<see cref="TRequest"/>) are expected on.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="queue">Queue name</param>
        /// <returns></returns>
        public static TopicHandlerBuilder <TRequest, TResponse> Queue <TRequest, TResponse>(this HandlerBuilder <TRequest, TResponse> builder, string queue)
            where TRequest : IRequestMessage <TResponse>
        {
            var b = new TopicHandlerBuilder <TRequest, TResponse>(queue, builder.Settings);

            b.ConsumerSettings.SetKind(PathKind.Queue);
            return(b);
        }
        /// <summary>
        /// Configure queue name that incoming requests (<see cref="TRequest"/>) are expected on.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="queue">Queue name</param>
        /// <returns></returns>
        public static TopicHandlerBuilder <TRequest, TResponse> Queue <TRequest, TResponse>(this HandlerBuilder <TRequest, TResponse> builder, string queue)
            where TRequest : IRequestMessage <TResponse>
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            var b = new TopicHandlerBuilder <TRequest, TResponse>(queue, builder.Settings);

            b.ConsumerSettings.SetKind(PathKind.Queue);
            return(b);
        }
Esempio n. 29
0
 public HandlerBuilderTests()
 {
     _handlerBuilder = new HandlerBuilder();
 }
        /// <summary>
        /// Configure queue name that incoming requests (<see cref="TRequest"/>) are expected on.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="queue">Queue name</param>
        /// <param name="queueConfig"></param>
        /// <returns></returns>
        public static TopicHandlerBuilder <TRequest, TResponse> Topic <TRequest, TResponse>(this HandlerBuilder <TRequest, TResponse> builder, string queue, Action <TopicHandlerBuilder <TRequest, TResponse> > queueConfig)
            where TRequest : IRequestMessage <TResponse>
        {
            if (builder is null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (queueConfig is null)
            {
                throw new ArgumentNullException(nameof(queueConfig));
            }

            var b = builder.Queue(queue);

            queueConfig(b);
            return(b);
        }
        /// <summary>
        /// Configure queue name that incoming requests (<see cref="TRequest"/>) are expected on.
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="queue">Queue name</param>
        /// <param name="queueConfig"></param>
        /// <returns></returns>
        public static TopicHandlerBuilder <TRequest, TResponse> Topic <TRequest, TResponse>(this HandlerBuilder <TRequest, TResponse> builder, string queue, Action <TopicHandlerBuilder <TRequest, TResponse> > queueConfig)
            where TRequest : IRequestMessage <TResponse>
        {
            var b = builder.Queue(queue);

            queueConfig(b);
            return(b);
        }