public async Task CompensateAsync(TeamsCreated message, ISagaContext context) { await Task.CompletedTask; }
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>()); }
public async Task HandleAsync(TeamsCreated message, ISagaContext context) { Complete(); await Task.CompletedTask; }
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); } }