//[Authorize(Policy = PolicyNames.ProcessHandicapCalculationsPolicy)] public async Task <IActionResult> ProcessHandicapCalculations([FromQuery] Guid tournamentId, CancellationToken cancellationToken) { StartHandicapCalculationProcessForTournamentCommand command = StartHandicapCalculationProcessForTournamentCommand.Create(tournamentId); await this.CommandRouter.Route(command, cancellationToken); return(this.NoContent()); }
/// <summary> /// Handles the command. /// </summary> /// <param name="command">The command.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> private async Task HandleCommand(StartHandicapCalculationProcessForTournamentCommand command, CancellationToken cancellationToken) { // Get the tournament for validation TournamentAggregate tournament = await this.TournamentRepository.GetLatestVersion(command.TournamentId, cancellationToken); // Rehydrate the aggregate HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = await this.HandicapCalculationProcessRepository.GetLatestVersion(command.TournamentId, cancellationToken); // Call the aggregate method handicapCalculationProcessAggregate.StartHandicapCalculationProcess(tournament, DateTime.Now); // Save the changes await this.HandicapCalculationProcessRepository.SaveChanges(handicapCalculationProcessAggregate, cancellationToken); }
public void HandicapCalculationCommandHandler_HandleCommand_StartHandicapCalculationProcessForTournamentCommand_CommandHandled() { Mock <IAggregateRepository <HandicapCalculationProcessAggregate> > handicapCalculationProcessRepository = new Mock <IAggregateRepository <HandicapCalculationProcessAggregate> >(); handicapCalculationProcessRepository.Setup(h => h.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(HandicapCalculationProcessTestData.GetEmptyHandicapCalculationProcessAggregate()); Mock <IAggregateRepository <TournamentAggregate> > tournamentRepository = new Mock <IAggregateRepository <TournamentAggregate> >(); tournamentRepository.Setup(t => t.GetLatestVersion(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(TournamentTestData.GetCompletedTournamentAggregateWithCSSCalculatedAggregate()); HandicapCalculationCommandHandler handler = new HandicapCalculationCommandHandler(handicapCalculationProcessRepository.Object, tournamentRepository.Object); StartHandicapCalculationProcessForTournamentCommand command = HandicapCalculationProcessTestData.GetStartHandicapCalculationProcessForTournamentCommand(); Should.NotThrow(async() => { await handler.Handle(command, CancellationToken.None); }); }
public static StartHandicapCalculationProcessForTournamentCommand GetStartHandicapCalculationProcessForTournamentCommand() { return(StartHandicapCalculationProcessForTournamentCommand.Create(HandicapCalculationProcessTestData.TournamentId)); }
/// <summary> /// Creates the handler. /// </summary> /// <param name="command">The command.</param> /// <returns></returns> private ICommandHandler CreateHandler(StartHandicapCalculationProcessForTournamentCommand command) { return(new HandicapCalculationCommandHandler(this.HandicapCalculationProcessRepository, this.TournamentRepository)); }