/// <summary> /// Updates the handicap calculation status. /// </summary> /// <param name="processId">The process identifier.</param> /// <param name="tournamentId">The tournament identifier.</param> /// <param name="status">The status.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <param name="errorMessage">The error message.</param> /// <returns></returns> private async Task UpdateHandicapCalculationStatus(Guid processId, Guid tournamentId, HandicapCalculationStatus status, CancellationToken cancellationToken, String errorMessage = null) { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = await this.HandicapCalculationProcessRepository.GetLatestVersion(tournamentId, cancellationToken); switch (status) { case HandicapCalculationStatus.Running: handicapCalculationProcessAggregate.UpdateProcessToRunning(DateTime.Now); break; case HandicapCalculationStatus.Complete: handicapCalculationProcessAggregate.UpdateProcessToComplete(DateTime.Now); break; case HandicapCalculationStatus.Error: handicapCalculationProcessAggregate.UpdateProcessToErrored(DateTime.Now, errorMessage); break; } await this.HandicapCalculationProcessRepository.SaveChanges(handicapCalculationProcessAggregate, cancellationToken); }
public static HandicapCalculationProcessAggregate GetRunningHandicapCalculationProcessAggregate() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessAggregate.Create(HandicapCalculationProcessTestData.AggregateId); handicapCalculationProcessAggregate.StartHandicapCalculationProcess(TournamentTestData.GetCompletedTournamentAggregateWithCSSCalculatedAggregate(), HandicapCalculationProcessTestData.StartedDateTime); handicapCalculationProcessAggregate.UpdateProcessToRunning(HandicapCalculationProcessTestData.RunningDateTime); return(handicapCalculationProcessAggregate); }
public void HandicapCalculationProcessAggregate_UpdateProcessToComplete_AlreadyErrored_ErrorThrown() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetErroredHandicapCalculationProcessAggregate(); Should.Throw <InvalidOperationException>(() => { handicapCalculationProcessAggregate.UpdateProcessToComplete(HandicapCalculationProcessTestData .CompletedDateTime); }); }
public void HandicapCalculationProcessAggregate_UpdateProcessToErrored_NotRunning_ErrorThrown() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetStartedHandicapCalculationProcessAggregate(); Should.Throw <InvalidOperationException>(() => { handicapCalculationProcessAggregate.UpdateProcessToErrored(HandicapCalculationProcessTestData.ErroredDateTime, HandicapCalculationProcessTestData.ErrorMessage); }); }
public void HandicapCalculationProcessAggregate_UpdateProcessToRunning_AlreadyRunning_ErrorThrown() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetRunningHandicapCalculationProcessAggregate(); Should.Throw <InvalidOperationException>(() => { handicapCalculationProcessAggregate.UpdateProcessToRunning(HandicapCalculationProcessTestData .RunningDateTime); }); }
public void HandicapCalculationProcessAggregate_StartHandicapCalculationProcess_ProcessRecordedAsStarted() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetEmptyHandicapCalculationProcessAggregate(); handicapCalculationProcessAggregate.StartHandicapCalculationProcess(TournamentTestData.GetCompletedTournamentAggregateWithCSSCalculatedAggregate(), HandicapCalculationProcessTestData.StartedDateTime); handicapCalculationProcessAggregate.AggregateId.ShouldBe(handicapCalculationProcessAggregate.AggregateId); handicapCalculationProcessAggregate.StartedDateTime.ShouldBe(handicapCalculationProcessAggregate.StartedDateTime); handicapCalculationProcessAggregate.Status.ShouldBe(HandicapProcessStatus.Started); }
public void HandicapCalculationProcessAggregate_UpdateProcessToRunning_ProcessSetToRunning() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetStartedHandicapCalculationProcessAggregate(); handicapCalculationProcessAggregate.UpdateProcessToRunning(HandicapCalculationProcessTestData.RunningDateTime); handicapCalculationProcessAggregate.AggregateId.ShouldBe(handicapCalculationProcessAggregate.AggregateId); handicapCalculationProcessAggregate.StartedDateTime.ShouldBe(handicapCalculationProcessAggregate.StartedDateTime); handicapCalculationProcessAggregate.RunningDateTime.ShouldBe(handicapCalculationProcessAggregate.RunningDateTime); handicapCalculationProcessAggregate.Status.ShouldBe(HandicapProcessStatus.Running); }
//[Authorize(Policy = PolicyNames.GetHandicapCalculationProcessStatusPolicy)] public async Task <IActionResult> GetHandicapCalculationProcessStatus([FromQuery] Guid tournamentId, CancellationToken cancellationToken) { HandicapCalculationProcessAggregate handicapCalculationProcess = await this.HandicapCalculationProcessRepository.GetLatestVersion(tournamentId, cancellationToken); if (handicapCalculationProcess.Status == HandicapProcessStatus.Default) { throw new NotFoundException($"Handicap Calculation Process not found with Id {tournamentId}"); } return(this.Ok(handicapCalculationProcess.Status.ToString())); }
public void HandicapCalculationProcessAggregate_StartHandicapCalculationProcess_TournamentScoresNotPublished() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetEmptyHandicapCalculationProcessAggregate(); Should.Throw <InvalidOperationException>(() => { handicapCalculationProcessAggregate.StartHandicapCalculationProcess(TournamentTestData .GetCompletedTournamentAggregate(), HandicapCalculationProcessTestData .StartedDateTime); }); }
public void HandicapCalculationProcessAggregate_StartHandicapCalculationProcess_AlreadyErrored_ErrorThrown() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetErroredHandicapCalculationProcessAggregate(); Should.Throw <InvalidOperationException>(() => { handicapCalculationProcessAggregate.StartHandicapCalculationProcess(TournamentTestData .GetCompletedTournamentAggregateWithCSSCalculatedAggregate(), HandicapCalculationProcessTestData .StartedDateTime); }); }
public void HandicapCalculationProcessAggregate_UpdateProcessToErrored_ProcessSetToErrored() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessTestData.GetRunningHandicapCalculationProcessAggregate(); handicapCalculationProcessAggregate.UpdateProcessToErrored(HandicapCalculationProcessTestData.ErroredDateTime, HandicapCalculationProcessTestData.ErrorMessage); handicapCalculationProcessAggregate.AggregateId.ShouldBe(handicapCalculationProcessAggregate.AggregateId); handicapCalculationProcessAggregate.StartedDateTime.ShouldBe(handicapCalculationProcessAggregate.StartedDateTime); handicapCalculationProcessAggregate.RunningDateTime.ShouldBe(handicapCalculationProcessAggregate.RunningDateTime); handicapCalculationProcessAggregate.ErroredDateTime.ShouldBe(handicapCalculationProcessAggregate.ErroredDateTime); handicapCalculationProcessAggregate.ErrorMessage.ShouldBe(handicapCalculationProcessAggregate.ErrorMessage); handicapCalculationProcessAggregate.Status.ShouldBe(HandicapProcessStatus.Errored); }
/// <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 static HandicapCalculationProcessAggregate GetEmptyHandicapCalculationProcessAggregate() { HandicapCalculationProcessAggregate handicapCalculationProcessAggregate = HandicapCalculationProcessAggregate.Create(HandicapCalculationProcessTestData.AggregateId); return(handicapCalculationProcessAggregate); }