Esempio n. 1
0
 public async Task CompensateAsync(TeamsCreated message, ISagaContext context)
 {
     await Task.CompletedTask;
 }
Esempio n. 2
0
        public async Task TeamsCreatedShouldCreateInboxNotificationAndSendIt()
        {
            var fix = new Fixture();

            int leagueId = fix.Create <int>();
            int tourId   = fix.Create <int>();

            var playersData = new List <PlayerInternalIdDto>()
            {
                new PlayerInternalIdDto {
                    InternalId = 1
                },
                new PlayerInternalIdDto {
                    InternalId = 2
                },
                new PlayerInternalIdDto {
                    InternalId = 3
                },
                new PlayerInternalIdDto {
                    InternalId = 4
                },
                new PlayerInternalIdDto {
                    InternalId = 5
                },
                new PlayerInternalIdDto {
                    InternalId = 6
                },
                new PlayerInternalIdDto {
                    InternalId = 7
                },
                new PlayerInternalIdDto {
                    InternalId = 8
                },
                new PlayerInternalIdDto {
                    InternalId = 9
                },
                new PlayerInternalIdDto {
                    InternalId = 10
                },
                new PlayerInternalIdDto {
                    InternalId = 11
                },
                new PlayerInternalIdDto {
                    InternalId = 12
                },
                new PlayerInternalIdDto {
                    InternalId = 13
                }
            };

            int[][] teams =
            {
                new[] { 1, 2, 3, 4 },
                new[] { 5, 6, 7, 8 }
            };
            var playersWithRateData = new List <PlayerWithRateDto>();

            foreach (var playerData in playersData)
            {
                playersWithRateData.Add(new PlayerWithRateDto {
                    Id = playerData.InternalId, PlayerLeagueRates = fix.Create <IEnumerable <PlayerLeagueRateDto> >()
                });
            }

            var @event = new TeamsCreated(teams, tourId, leagueId);

            var playersService = Substitute.For <IPlayersService>();
            var toursService   = Substitute.For <IToursService>();
            var busPublisher   = Substitute.For <IBusPublisher>();

            playersService.GetAsync(Arg.Any <PlayersQuery>()).ReturnsForAnyArgs(playersWithRateData);
            toursService.GetAsync(Arg.Any <RegisteredOnTourPlayers>())
            .ReturnsForAnyArgs(playersData.Select(x => new PlayerInternalIdDto {
                InternalId = x.InternalId
            }));

            var commandHandler = new TeamsCreatedHandler(busPublisher, toursService, playersService);
            await commandHandler.HandleAsync(@event, new CorrelationContext());

            await busPublisher.Received(3).SendAsync(
                Arg.Is <InboxNotification>(
                    x => x.PlayerIds.Length == teams[0].Length ||
                    x.PlayerIds.Length == teams[1].Length ||
                    x.PlayerIds.Length == playersData.Count - teams[0].Length - teams[1].Length),
                Arg.Any <CorrelationContext>());
        }
Esempio n. 3
0
 public async Task HandleAsync(TeamsCreated message, ISagaContext context)
 {
     Complete();
     await Task.CompletedTask;
 }
Esempio n. 4
0
        void CheckTeamsCreated(bool onlyCheckOnce)
        {
            try
            {
                TraceClientExtensions.TraceMessage(System.Diagnostics.TraceEventType.Information, 1,
                                                   $"CheckTeamsCreated {generalData.TeamName} con el usuario {generalData.UserName}");

                using (MyServiceClient c = new MyServiceClient(generalData.ServerIP))
                {
                    while (true)
                    {
                        if (IsDisposed || ParentForm.Disposing || ParentForm.IsDisposed)
                        {
                            return;
                        }
                        data = c.GetMusData(generalData.GameName, generalData.TeamName, generalData.UserName);
                        if (data.MusTeams?.Length == 2 &&
                            !string.IsNullOrEmpty(data.MusTeams[0].UserName1) &&
                            !string.IsNullOrEmpty(data.MusTeams[0].UserName2) &&
                            !string.IsNullOrEmpty(data.MusTeams[1].UserName1) &&
                            !string.IsNullOrEmpty(data.MusTeams[1].UserName2))
                        {
                            if (string.IsNullOrEmpty(generalData.TeamName))
                            {
                                if (data.MusTeams[0].UserName1 == generalData.UserName || data.MusTeams[0].UserName2 == generalData.UserName)
                                {
                                    generalData.TeamName = data.MusTeams[0].TeamName;
                                }
                                else
                                {
                                    generalData.TeamName = data.MusTeams[1].TeamName;
                                }
                            }
                            TeamsCreated?.Invoke(this, EventArgs.Empty);
                            break;
                        }
                        else
                        {
                            if (onlyCheckOnce)
                            {
                                if (data.MusTeams?.Length > 0)
                                {
                                    foreach (var t in data.MusTeams)
                                    {
                                        if (t.UserName1 == generalData.UserName || t.UserName2 == generalData.UserName)
                                        {
                                            radTeam1.Checked = t.TeamName == radTeam1.Text ? true : false;
                                            radTeam2.Checked = t.TeamName == radTeam2.Text ? true : false;
                                            break;
                                        }
                                    }
                                }
                                return;
                            }
                            Application.DoEvents();
                            Thread.Sleep(1000);
                            Application.DoEvents();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TraceClientExtensions.TraceMessage(System.Diagnostics.TraceEventType.Error, 1,
                                                   $"Error al chequear equipos {generalData.TeamName} con el usuario {generalData.UserName}");
                MessageBox.Show("Error al chequear equipos: " + ex.Message);
            }
        }