public async Task UpdateCaptainAsync(Captain captain) { try { var validationError = captain.Validate(); if (validationError.Any()) { throw new ValidationException($"A validation exception was raised while trying to update a Captain : {JsonConvert.SerializeObject(validationError, Formatting.Indented)}"); } await EnsureCaptainExistAsync(captain.Id); await CheckExplorersTeamExistAsync(captain.ExplorersTeamId); await m_repository.UpdateAsync(new List <Captain> { captain }); } catch (ValidationException e) { m_logger.LogWarning(e, "A validation failed"); throw; } catch (Exception e) when(e.GetType() != typeof(ValidationException)) { m_logger.LogCritical(e, $"Unexpected Exception while trying to update a Captain with the properties : {JsonConvert.SerializeObject(captain, Formatting.Indented)}"); throw; } }
public async Task UpdateNewCaptain_Ok() { //Arrange var id = Guid.NewGuid(); var captain = new Captain { Id = id, Name = "Test", }; //Act await m_repository.CreateAsync(captain); var(_, captains) = await m_repository.SearchAsync(new Pagination(), new Ordering(), new CaptainFilter { SearchTerm = id.ToString() }); captain.Name = "Modified"; await m_repository.UpdateAsync(new List <Captain> { captain }); var(_, updatedResponse) = await m_repository.SearchAsync(new Pagination(), new Ordering(), new CaptainFilter { SearchTerm = id.ToString() }); //Assert Assert.Equal(id, captains.First().Id); Assert.Equal("Modified", captains.First().Name); await m_repository.DeleteAsync(updatedResponse.First()); }