/// <summary> /// Returns output indicating that the requester's song director rank wasn't found. /// </summary> /// <param name="requesterId">The id of the requester.</param> /// <param name="getRequesterRankResult"> /// The result of the attempt to get the requester's rank. /// </param> /// <returns>The output.</returns> private TOutput RequesterRankNotFound( string requesterId, Result <Rank?> getRequesterRankResult) { return(_boundary.RequesterRankNotFound( AddSongDirectorResponse.RequesterRankNotFound( requesterId, getRequesterRankResult.GetErrorMessagesString()))); }
public static async Task HandleAsync_ValidSongDirector_ReturnsExpectedMessage( string requesterRank, string?fullName, string?emailAddress, string?phoneNumber, string?rankName, bool?isActive, string expectedMessage) { // Arrange string requesterId = Guid.NewGuid().ToString(); IAsyncRepository <SongDirector> songDirectorRepository = GetMockSongDirectorRepository( requesterRank); AddSongDirectorDefaultBoundary boundary = new(); AddSongDirectorInteractor <AddSongDirectorResponse> addSongDirectorInteractor = new(songDirectorRepository, boundary); AddSongDirectorRequest addSongDirectorRequest = new( requesterId, fullName, emailAddress, phoneNumber, rankName, isActive); // Act AddSongDirectorResponse addSongDirectorResponse = await addSongDirectorInteractor .HandleAsync(addSongDirectorRequest) .ConfigureAwait(false); // Assert Assert.Equal(expectedMessage, addSongDirectorResponse.Messages.First()); }
/// <inheritdoc/> public IResult SongDirectorAdded(AddSongDirectorResponse response) { // Validate song director id if (response.AddedSongDirector?.Id == null) { throw new ArgumentException("Id must be set for an added song director."); } // Get the URL for the added song director string addedSongDirectorUrl = new Uri( ResourceBaseUri, response.AddedSongDirector.Id) .ToString(); // Create a response object for the added song director SongDirectorApiModel addSongDirectorResponse = SongDirectorApiModel .AddedSongDirector(addedSongDirectorUrl); // Return the IActionResult representing the add return(Results.Created(addedSongDirectorUrl, addSongDirectorResponse)); }
/// <summary> /// Returns output indicating that there was a validation error when trying to create a /// song director. /// </summary> /// <param name="createSongDirectorResult"> /// The result of the attempt to create a song director.</param> /// <returns>The output.</returns> private TOutput ValidationFailure(Result <SongDirector> createSongDirectorResult) { return(_boundary.ValidationFailure( AddSongDirectorResponse.ValidationFailure( createSongDirectorResult.Errors.Select(e => e.Message)))); }
/// <summary> /// Returns output indicating that the requester has insufficient permissions to add a song /// director. /// </summary> /// <returns>The output.</returns> private TOutput InsufficientPermissions() => _boundary.InsufficientPermissions( AddSongDirectorResponse.InsufficientPermissions());
/// <summary> /// Returns output indicating that an attempt to add a song director failed. /// </summary> /// <param name="addSongDirectorResult">The result of the add attempt.</param> /// <returns>The output.</returns> private TOutput FailedToAddSongDirector(Result <SongDirector> addSongDirectorResult) { return(_boundary.SongDirectorAddFailed(AddSongDirectorResponse.SongDirectorAddFailed( $"{addSongDirectorResult.GetErrorMessagesString()}"))); }
/// <summary> /// Returns output indicating that a song director was added. /// </summary> /// <param name="addedSongDirector">The added song director.</param> /// <returns>The output.</returns> private TOutput SongDirectorAdded(SongDirectorUseCaseModel addedSongDirector) { return(_boundary.SongDirectorAdded( AddSongDirectorResponse.SongDirectorAdded(addedSongDirector))); }
/// <inheritdoc/> public IResult ValidationFailure(AddSongDirectorResponse response) => Results.BadRequest(new Status( HydraContext, (int)HttpStatusCode.BadRequest, "Bad Request", string.Join(Environment.NewLine, response.Messages)));
/// <inheritdoc/> public IResult SongDirectorAddFailed(AddSongDirectorResponse response) => Results.Extensions.BadGatewayStatusJsonLD(HydraContext, response.Messages);
/// <inheritdoc/> /// TODO: Create an UnauthorizedObjectResult class to include a Status object public IResult RequesterRankNotFound(AddSongDirectorResponse response) => Results.Unauthorized();
/// <inheritdoc/> public IResult InsufficientPermissions(AddSongDirectorResponse response) => Results.Unauthorized();