当前位置: 首页>>代码示例>>C#>>正文


C# CommandEventHandler.ProcessCommand方法代码示例

本文整理汇总了C#中CommandEventHandler.ProcessCommand方法的典型用法代码示例。如果您正苦于以下问题:C# CommandEventHandler.ProcessCommand方法的具体用法?C# CommandEventHandler.ProcessCommand怎么用?C# CommandEventHandler.ProcessCommand使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CommandEventHandler的用法示例。


在下文中一共展示了CommandEventHandler.ProcessCommand方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: It_Just_Freaking_Works

        public void It_Just_Freaking_Works()
        {
            // Yay happy path!

            var statisticsProvider = new SwissStatisticsProvider();
            var rankingEngine = new SwissRankingEngine(statisticsProvider);
            var contextBuilder = new SwissTournamanetContextBuilder(statisticsProvider, rankingEngine);
            var commandEventHandler = new CommandEventHandler<SwissTournamentContext>(contextBuilder);

            var context = new SwissTournamentContext(0, TournamentState.None, null, null, null);

            // Create the tournament
            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.CreateTournament.ToString(),
                    properties: new Dictionary<string, string>
                    {
                        { "Timestamp", new DateTimeOffset(1982, 7, 22, 01, 14, 22, TimeSpan.FromHours(-7)).ToString() }
                    })
            );

            Assert.Equal(TournamentState.TournamentCreated, context.State);
            Assert.NotEqual(0, context.TournamentSeed);

            // Add players
            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.AddPlayer.ToString(),
                    properties: new Dictionary<string, string>
                    {
                        { "Player", "A" }
                    })
            );

            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.AddPlayer.ToString(),
                    properties: new Dictionary<string, string>
                    {
                        { "Player", "B" }
                    })
            );

            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.AddPlayer.ToString(),
                    properties: new Dictionary<string, string>
                    {
                        { "Player", "C" }
                    })
            );

            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.AddPlayer.ToString(),
                    properties: new Dictionary<string, string>
                    {
                        { "Player", "D" }
                    })
            );

            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.AddPlayer.ToString(),
                    properties: new Dictionary<string, string>
                    {
                        { "Player", "E" }
                    })
            );

            Assert.Equal(TournamentState.TournamentStarted, context.State);
            Assert.NotEmpty(context.Players);

            var roundOnePairings = rankingEngine.GetPairings(context);

            // Record match results for round 1
            context = commandEventHandler.ProcessCommand(
                context: context,
                commandEvent: new CommandEvent(
                    sequence: 0,
                    aggregateId: "T1",
                    name: TournamentCommand.RecordMatchResults.ToString(),
//.........这里部分代码省略.........
开发者ID:Jaecen,项目名称:Peregrine,代码行数:101,代码来源:EventHandlingIntegrationTests.cs


注:本文中的CommandEventHandler.ProcessCommand方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。