コード例 #1
0
 static Task SendHandlerMessage(IMessageSession endpointInstance)
 {
     Console.WriteLine();
     Console.WriteLine("HandlerMessage sent");
     var message = new HandlerMessage();
     return endpointInstance.SendLocal(message);
 }
コード例 #2
0
 public async Task SubmitOrder(string customer, string cartId)
 {
     var msg = new SendSubmitOrder
     {
         Customer = customer,
         CartId   = cartId,
     };
     await session.SendLocal(msg);
 }
コード例 #3
0
        public async Task <dynamic> Propose(dynamic proposedPrice)
        {
            await _messageSession.SendLocal <ProposePriceCommand>(cmd =>
            {
                cmd.StockItemId   = proposedPrice.StockItemId;
                cmd.ProposedPrice = proposedPrice.Price;
            });

            return(proposedPrice.StockItemId);
        }
コード例 #4
0
 static Task SendSagaMessage(IMessageSession endpointInstance)
 {
     Console.WriteLine();
     Console.WriteLine("StartSagaMessage sent");
     var message = new StartSagaMessage
     {
         SentTime = DateTimeOffset.UtcNow,
         TheId = Guid.NewGuid()
     };
     return endpointInstance.SendLocal(message);
 }
            protected override async Task OnStart(IMessageSession session, CancellationToken cancellationToken = default)
            {
                using (var tx = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions {
                    IsolationLevel = IsolationLevel.ReadCommitted
                }, TransactionScopeAsyncFlowOption.Enabled))
                {
                    await session.SendLocal(new MyMessage(), cancellationToken);

                    tx.Complete();
                }
            }
コード例 #6
0
        public async Task <ActionResult <Group> > CreateNewGroup(CreateGroupRequest req)
        {
            await _messageSession.SendLocal(new CreateNewGroup
            {
                GroupName    = req.GroupName,
                TournamentId = req.TournamentId,
                TeamNames    = req.TeamNames
            });

            return(Accepted());
        }
コード例 #7
0
        public async Task <dynamic> Post(dynamic model)
        {
            await _messageSession.SendLocal <HeyIKnowThisIsWrongButSagaTrustMeDraftIsDoneCommand>(cmd =>
            {
                cmd.ProductDraftId = model.Id;
                cmd.StockItemId    = model.StockItemId;
                cmd.Title          = model.Title;
                cmd.Description    = model.Description;
            });

            return(model.Id);
        }
コード例 #8
0
    static Task SendSagaMessage(IMessageSession endpointInstance)
    {
        Console.WriteLine();
        Console.WriteLine("StartSagaMessage sent");
        var message = new StartSagaMessage
        {
            SentTime = DateTimeOffset.UtcNow,
            TheId    = Guid.NewGuid()
        };

        return(endpointInstance.SendLocal(message));
    }
コード例 #9
0
        public async Task <IActionResult> StartAsync([FromBody] StartProjectScoringRequest request)
        {
            var command = new StartScoring
            {
                ProjectId       = request.ProjectId,
                TransactionHash = request.TransactionHash,
                UserId          = User.GetUserId()
            };

            await _messageSession.SendLocal(command);

            return(NoContent());
        }
コード例 #10
0
        public async Task <IActionResult> UpdateExpertAreasAsync([FromBody] AdminExpertUpdateAreasRequest request)
        {
            var message = new UpdateExpertAreas
            {
                ExpertAddress   = request.Address,
                TransactionHash = request.TransactionHash,
                UserId          = User.GetUserId()
            };

            await _messageSession.SendLocal(message);

            return(NoContent());
        }
コード例 #11
0
        public async Task <ActionResult <Guid> > CreateNewTournament(CreateTournamentRequest req)
        {
            var tournamentId = Guid.NewGuid();
            await _messageSession.SendLocal(new CreateNewTournament
            {
                TournamentId = tournamentId,
                Name         = req.Name,
                Starts       = req.Starts,
                Ends         = req.Ends
            });

            return(AcceptedAtAction(nameof(GetTournament), new { id = tournamentId }));
        }
コード例 #12
0
    static async Task SendMessageLargePayload(IMessageSession messageSession)
    {
        Console.WriteLine("Sending message...");

        var message = new MessageWithLargePayload
        {
            Description  = "This message contains a large payload that will be sent on the Azure data bus",
            LargePayload = new DataBusProperty <byte[]>(new byte[1024 * 1024 * 5]) // 5MB
        };
        await messageSession.SendLocal(message)
        .ConfigureAwait(false);

        Console.WriteLine("Message sent.");
    }
コード例 #13
0
 protected override async Task ExecuteAsync(CancellationToken cancellationToken)
 {
     while (!cancellationToken.IsCancellationRequested)
     {
         try
         {
             //--- Eternal work here
             await messageSession.SendLocal(null).ConfigureAwait(false);
         }
         catch (OperationCanceledException oEx)
         {
             LOG.Info("Unexpected cancellation", oEx);
         }
     }
 }
コード例 #14
0
        public async Task <IActionResult> UpdateAsync(long id, [FromBody] UpdateAllotmentEventRequest request)
        {
            var command = new UpdateAllotmentEvent(
                id,
                request.TransactionHash,
                AllotmentEventOperation.Delete,
                User.GetUserId());

            await _messageSession.SendLocal(command);

            return(NoContent());
        }
コード例 #15
0
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        try
        {
            var number = 0;
            while (!stoppingToken.IsCancellationRequested)
            {
                await messageSession.SendLocal(new MyMessage { Number = number++ })
                .ConfigureAwait(false);

                await Task.Delay(1000, stoppingToken).ConfigureAwait(false);
            }
        }
        catch (OperationCanceledException)
        {
            // graceful shutdown
        }
    }
コード例 #16
0
        public async Task <EventHandledResponse> Handle(EventMetaData eventMetadata, AppMentionEvent slackEvent)
        {
            var debugDetails = MetaService.DebugInfo();
            var debugInfo    = $"▪️ v{debugDetails.MajorMinorPatch}\n" +
                               $"▪️ {debugDetails.Informational}\n";
            var releaseNotes = await GitHubReleaseService.GetReleaseNotes(debugDetails.MajorMinorPatch);

            if (!string.IsNullOrEmpty(releaseNotes))
            {
                debugInfo += releaseNotes;
            }
            else if (debugDetails.Sha != "0")
            {
                debugInfo += $"️▪️ <https://github.com/fplbot/fplbot/tree/{debugDetails.Sha}|{debugDetails.Sha?.Substring(0, debugDetails.Sha.Length - 1)}>\n";
            }
            await _session.SendLocal(new PublishToSlack(eventMetadata.Team_Id, slackEvent.Channel, debugInfo));

            return(new EventHandledResponse("OK"));
        }
        public async Task Handle(HttpRequest request)
        {
            var requestData = new Dictionary <string, string>()
            {
                { "sales-product-id", (string)request.HttpContext.GetRouteValue("id") },
                { "sales-quantity", request.Form["quantity"][0] },
            };
            var vm = request.GetComposedResponseModel();
            await vm.RaiseEvent(new AddItemToCartRequested()
            {
                CartId      = request.Cookies["cart-id"],
                RequestId   = request.Headers.GetComposedRequestId(),
                RequestData = requestData
            });

            await messageSession.SendLocal(new AddToCartRequest()
            {
                RequestId   = request.Headers.GetComposedRequestId(),
                CartId      = new Guid(request.Cookies["cart-id"]),
                RequestData = requestData
            });
        }
コード例 #18
0
        public async Task Handle(string requestId, dynamic vm, RouteData routeData, HttpRequest request)
        {
            var requestData = new Dictionary <string, string>()
            {
                { "sales-product-id", (string)routeData.Values["id"] },
                { "sales-quantity", request.Form["quantity"][0] },
            };

            await vm.RaiseEvent(new AddItemToCartRequested()
            {
                CartId      = request.Cookies["cart-id"],
                RequestId   = requestId,
                RequestData = requestData
            });

            await messageSession.SendLocal(new AddToCartRequest()
            {
                RequestId   = requestId,
                CartId      = new Guid(request.Cookies["cart-id"]),
                RequestData = requestData
            });
        }
コード例 #19
0
        async Task Loop(IMessageSession session)
        {
            int min, max;

            lock (random)
            {
                min = random.Next(100);
                max = random.Next(min, 1000);
            }

            while (!stop)
            {
                await session.SendLocal(new Ping()).ConfigureAwait(false);

                int delay;
                lock (random)
                {
                    delay = random.Next(min, max);
                }
                await Task.Delay(TimeSpan.FromMilliseconds(delay)).ConfigureAwait(false);
            }
        }
コード例 #20
0
    public static async Task StartLoop(IMessageSession messageSession)
    {
        Console.WriteLine("Press [c] to send a command. Press [Esc] to exit.");
        while (true)
        {
            var input = Console.ReadKey();
            Console.WriteLine();

            switch (input.Key)
            {
            case ConsoleKey.C:
                await messageSession.SendLocal(
                    new CreateOrder
                {
                    OrderId = Guid.NewGuid()
                });

                break;

            case ConsoleKey.Escape:
                return;
            }
        }
    }
コード例 #21
0
 public async Task SubscribeToCounter(string counterID)
 {
     await _messageSession.SendLocal(new SubscribeToCounter { CounterID = counterID, ConnectionID = this.Context.ConnectionId });
 }
コード例 #22
0
                    protected override async Task OnStart(IMessageSession session, CancellationToken cancellationToken = default)
                    {
                        await BreakConnectionBySendingInvalidMessage(cancellationToken);

                        await session.SendLocal(new MyRequest { MessageId = context.MessageId }, cancellationToken);
                    }
            protected override async Task OnStart(IMessageSession session)
            {
                await session.SendLocal(new MyMessage());

                await Task.Delay(TimeSpan.FromSeconds(5));
            }
コード例 #24
0
 public async Task Start(IMessageSession session)
 {
    await session.SendLocal(new MyMessage());
 }
コード例 #25
0
 public async Task Handle(BonusAdded notification, CancellationToken cancellationToken)
 {
     await _session.SendLocal(new PublishToSlack("T0A9QSU83", "#johntest", $"Bonus added for matchday {notification.MatchDayDate:yyyy-MM-dd} in gw {notification.Event}"));
 }
コード例 #26
0
    public Task Start(IMessageSession session)
    {
        var myMessage = new MyMessage();

        return(session.SendLocal(myMessage));
    }
            protected override async Task OnStart(IMessageSession session, CancellationToken cancellationToken = default)
            {
                await session.SendLocal(new MyCommand(), cancellationToken);

                await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);
            }
コード例 #28
0
 protected override Task AfterDispatch(IMessageSession session, SystemMessageTestContext context)
 {
     return(session.SendLocal(new DoQueryAllowed()));
 }
コード例 #29
0
ファイル: Startup.cs プロジェクト: vi-ga/docs.particular.net
 public async Task Start(IMessageSession session)
 {
     await session.SendLocal(new MyMessage());
 }
コード例 #30
0
 public Task SendLocal <T>(T message) => messageSession.SendLocal(message);
コード例 #31
0
 public Task Start(IMessageSession session)
 {
     var myMessage = new MyMessage();
     return session.SendLocal(myMessage);
 }
コード例 #32
0
 public async Task Add([FromQuery] string counterID)
 {
     await _messageSession.SendLocal(new AddToCounter { CounterID = counterID });
 }
コード例 #33
0
 private Task Work()
 {
     return(_messageSession.SendLocal(new SomeCommandOne()));
 }
                    protected override async Task OnStart(IMessageSession session)
                    {
                        await BreakConnectionBySendingInvalidMessage();

                        await session.SendLocal(new MyRequest { MessageId = context.MessageId });
                    }