diff --git a/source/backend/api/Services/DocumentQueueService.cs b/source/backend/api/Services/DocumentQueueService.cs index 7c38f4b270..c7da3b0c83 100644 --- a/source/backend/api/Services/DocumentQueueService.cs +++ b/source/backend/api/Services/DocumentQueueService.cs @@ -101,7 +101,7 @@ public async Task Update(PimsDocumentQueue documentQueue) this.User.ThrowIfNotAuthorizedOrServiceAccount(Permissions.SystemAdmin, this._keycloakOptions); - await _documentQueueRepository.Update(documentQueue); + await _documentQueueRepository.UpdateAsync(documentQueue); return documentQueue; } @@ -349,7 +349,7 @@ private async Task UpdateDocumentQueueStatus(PimsDocumentQueue documentQueue, Do } } - await _documentQueueRepository.Update(documentQueue, removeDocument); + await _documentQueueRepository.UpdateAsync(documentQueue, removeDocument); } private bool ValidateQueuedDocument(PimsDocumentQueue databaseDocumentQueue, PimsDocumentQueue externalDocument) diff --git a/source/backend/api/Services/NotificationUserService.cs b/source/backend/api/Services/NotificationUserService.cs index ca55e4ebd3..de1fafbd7e 100644 --- a/source/backend/api/Services/NotificationUserService.cs +++ b/source/backend/api/Services/NotificationUserService.cs @@ -92,8 +92,7 @@ public async Task PushNotificationUser(long notificationUserId) userNotification.NotificationSentDt = DateTime.UtcNow; } - _ = await _notificationUserOutputRepository.Update(userNotification); - _notificationUserOutputRepository.CommitTransaction(); + _ = await _notificationUserOutputRepository.UpdateAsync(userNotification); return; } diff --git a/source/backend/dal/Repositories/DocumentQueueRepository.cs b/source/backend/dal/Repositories/DocumentQueueRepository.cs index e4b43e4172..dd85703999 100644 --- a/source/backend/dal/Repositories/DocumentQueueRepository.cs +++ b/source/backend/dal/Repositories/DocumentQueueRepository.cs @@ -87,7 +87,7 @@ public PimsDocumentQueue GetByDocumentId(long documentId) /// /// /// - public async Task Update(PimsDocumentQueue queuedDocument, bool removeDocument = false) + public async Task UpdateAsync(PimsDocumentQueue queuedDocument, bool removeDocument = false) { // Use a distributed lock to ensure that only one process can update the document queue at a time (prevents deadlocks from history triggers). var @lock = this._synchronizationProvider.CreateLock("DocumentQueueLock"); diff --git a/source/backend/dal/Repositories/Interfaces/IDocumentQueueRepository.cs b/source/backend/dal/Repositories/Interfaces/IDocumentQueueRepository.cs index 319a7cbe52..77896942a9 100644 --- a/source/backend/dal/Repositories/Interfaces/IDocumentQueueRepository.cs +++ b/source/backend/dal/Repositories/Interfaces/IDocumentQueueRepository.cs @@ -19,7 +19,7 @@ public interface IDocumentQueueRepository : IRepository IEnumerable GetAllByFilter(DocumentQueueFilter filter); - Task Update(PimsDocumentQueue queuedDocument, bool removeDocument = false); + Task UpdateAsync(PimsDocumentQueue queuedDocument, bool removeDocument = false); bool Delete(PimsDocumentQueue queuedDocument); diff --git a/source/backend/dal/Repositories/Interfaces/INotificationUserOutputRepository.cs b/source/backend/dal/Repositories/Interfaces/INotificationUserOutputRepository.cs index a601db0d14..f86781734f 100644 --- a/source/backend/dal/Repositories/Interfaces/INotificationUserOutputRepository.cs +++ b/source/backend/dal/Repositories/Interfaces/INotificationUserOutputRepository.cs @@ -11,6 +11,6 @@ public interface INotificationUserOutputRepository : IRepository public PimsNotificationUserOutput GetById(long notificationUserOutputId); - public Task Update(PimsNotificationUserOutput userNotification); + public Task UpdateAsync(PimsNotificationUserOutput userNotification); } } diff --git a/source/backend/dal/Repositories/NotificationUserOutputRepository.cs b/source/backend/dal/Repositories/NotificationUserOutputRepository.cs index f59e132c2b..ef027d38b2 100644 --- a/source/backend/dal/Repositories/NotificationUserOutputRepository.cs +++ b/source/backend/dal/Repositories/NotificationUserOutputRepository.cs @@ -80,7 +80,7 @@ public PimsNotificationUserOutput GetById(long notificationUserOutputId) .FirstOrDefault(x => x.NotificationUserOutputId == notificationUserOutputId) ?? throw new KeyNotFoundException(); } - public async Task Update(PimsNotificationUserOutput userNotification) + public async Task UpdateAsync(PimsNotificationUserOutput userNotification) { var @lock = _synchronizationProvider.CreateLock("NotificationUserOutputLock"); await using (await @lock.AcquireAsync()) @@ -91,7 +91,7 @@ public async Task Update(PimsNotificationUserOutput .FirstOrDefault(x => x.NotificationUserOutputId == userNotification.NotificationUserOutputId); Context.Entry(existingUserNotification).CurrentValues.SetValues(userNotification); - Context.Update(existingUserNotification); + await Context.SaveChangesAsync(); return existingUserNotification; } diff --git a/source/backend/tests/api/Services/DocumentQueueServiceTest.cs b/source/backend/tests/api/Services/DocumentQueueServiceTest.cs index 4b165da80f..498763c1f9 100644 --- a/source/backend/tests/api/Services/DocumentQueueServiceTest.cs +++ b/source/backend/tests/api/Services/DocumentQueueServiceTest.cs @@ -135,7 +135,7 @@ public async void Update_Success() var documentQueue = new PimsDocumentQueue { DocumentQueueId = 1 }; var documentQueueRepositoryMock = this._helper.GetService>(); - documentQueueRepositoryMock.Setup(m => m.Update(documentQueue, false)); + documentQueueRepositoryMock.Setup(m => m.UpdateAsync(documentQueue, false)); documentQueueRepositoryMock.Setup(m => m.CommitTransaction()); // Act @@ -143,7 +143,7 @@ public async void Update_Success() // Assert result.Should().Be(documentQueue); - documentQueueRepositoryMock.Verify(m => m.Update(documentQueue, false), Times.Once); + documentQueueRepositoryMock.Verify(m => m.UpdateAsync(documentQueue, false), Times.Once); } [Fact] @@ -216,7 +216,7 @@ public async Task PollForDocument_RelatedDocumentMayanIdNull_UpdatesStatusToPIMS // Assert await act.Should().ThrowAsync(); - documentQueueRepositoryMock.Verify(m => m.Update(databaseDocumentQueue, false), Times.Once); + documentQueueRepositoryMock.Verify(m => m.UpdateAsync(databaseDocumentQueue, false), Times.Once); } [Fact] @@ -241,7 +241,7 @@ public async Task PollForDocument_GetStorageDocumentDetailFails_UpdatesStatusToP // Assert result.Should().Be(databaseDocumentQueue); - documentQueueRepositoryMock.Verify(m => m.Update(databaseDocumentQueue, false), Times.Once); + documentQueueRepositoryMock.Verify(m => m.UpdateAsync(databaseDocumentQueue, false), Times.Once); } [Fact] @@ -267,7 +267,7 @@ public async Task PollForDocument_FileLatestIdNull_LogsFileStillProcessing() // Assert result.Should().Be(databaseDocumentQueue); - documentQueueRepositoryMock.Verify(m => m.Update(databaseDocumentQueue, false), Times.Never); + documentQueueRepositoryMock.Verify(m => m.UpdateAsync(databaseDocumentQueue, false), Times.Never); documentQueueRepositoryMock.Verify(m => m.CommitTransaction(), Times.Never); } @@ -295,7 +295,7 @@ public async Task PollForDocument_FileLatestIdNotNull_UpdatesStatusToSuccess() // Assert result.Should().Be(databaseDocumentQueue); result.DocumentQueueStatusTypeCode.Should().Be(DocumentQueueStatusTypes.SUCCESS.ToString()); - documentQueueRepositoryMock.Verify(m => m.Update(databaseDocumentQueue, true), Times.Once); + documentQueueRepositoryMock.Verify(m => m.UpdateAsync(databaseDocumentQueue, true), Times.Once); } [Fact] @@ -359,7 +359,7 @@ public async Task Upload_Success() // Assert result.Should().NotBeNull(); result.DocumentQueueStatusTypeCode.Should().Be(DocumentQueueStatusTypes.SUCCESS.ToString()); - documentQueueRepositoryMock.Verify(x => x.Update(It.IsAny(), It.IsAny()), Times.AtLeastOnce); + documentQueueRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny(), It.IsAny()), Times.AtLeastOnce); documentServiceMock.Verify(x => x.UploadDocumentAsync(It.IsAny(), true), Times.Once); } @@ -425,7 +425,7 @@ public async Task Upload_Retry_Success() result.Should().NotBeNull(); result.DocProcessRetries.Should().Be(1); result.DocumentQueueStatusTypeCode.Should().Be(DocumentQueueStatusTypes.SUCCESS.ToString()); - documentQueueRepositoryMock.Verify(x => x.Update(It.IsAny(), It.IsAny()), Times.AtLeastOnce); + documentQueueRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny(), It.IsAny()), Times.AtLeastOnce); documentServiceMock.Verify(x => x.UploadDocumentAsync(It.IsAny(), true), Times.Once); } @@ -455,7 +455,7 @@ public async Task Upload_ValidateQueuedDocumentFails_UpdatesStatusToPIMSError() // Assert result.Should().NotBeNull(); result.DocumentQueueStatusTypeCode.Should().Be(DocumentQueueStatusTypes.PIMS_ERROR.ToString()); - documentQueueRepositoryMock.Verify(x => x.Update(It.IsAny(), It.IsAny()), Times.AtLeastOnce); + documentQueueRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny(), It.IsAny()), Times.AtLeastOnce); documentServiceMock.Verify(x => x.UploadDocumentAsync(It.IsAny(), true), Times.Never); } @@ -591,7 +591,7 @@ public async Task Upload_RelatedDocument_MayanId() // Assert result.Should().NotBeNull(); result.DocumentQueueStatusTypeCode.Should().Be(DocumentQueueStatusTypes.PROCESSING.ToString()); - documentQueueRepositoryMock.Verify(x => x.Update(It.IsAny(), It.IsAny()), Times.AtLeastOnce); + documentQueueRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny(), It.IsAny()), Times.AtLeastOnce); documentServiceMock.Verify(x => x.UploadDocumentAsync(It.IsAny(), true), Times.Once); } @@ -684,7 +684,7 @@ public async Task Upload_DocumentTypeIdNull() await act.Should().ThrowAsync(); // Assert - documentQueueRepositoryMock.Verify(x => x.Update(It.Is(p => p.DocumentQueueStatusTypeCode == DocumentQueueStatusTypes.PIMS_ERROR.ToString()), It.IsAny()), Times.AtLeastOnce); + documentQueueRepositoryMock.Verify(x => x.UpdateAsync(It.Is(p => p.DocumentQueueStatusTypeCode == DocumentQueueStatusTypes.PIMS_ERROR.ToString()), It.IsAny()), Times.AtLeastOnce); } [Fact] @@ -741,7 +741,7 @@ public async Task Upload_UploadDocumentFails_UpdatesStatusToMayanError() // Assert result.Should().NotBeNull(); result.DocumentQueueStatusTypeCode.Should().Be(DocumentQueueStatusTypes.MAYAN_ERROR.ToString()); - documentQueueRepositoryMock.Verify(x => x.Update(It.IsAny(), It.IsAny()), Times.AtLeastOnce); + documentQueueRepositoryMock.Verify(x => x.UpdateAsync(It.IsAny(), It.IsAny()), Times.AtLeastOnce); documentServiceMock.Verify(x => x.UploadDocumentAsync(It.IsAny(), true), Times.Once); } diff --git a/source/backend/tests/dal/Repositories/DocumentQueueRepositoryTest.cs b/source/backend/tests/dal/Repositories/DocumentQueueRepositoryTest.cs index ad503e19e4..b35b3d203c 100644 --- a/source/backend/tests/dal/Repositories/DocumentQueueRepositoryTest.cs +++ b/source/backend/tests/dal/Repositories/DocumentQueueRepositoryTest.cs @@ -66,7 +66,7 @@ public void Update_Success() // Act documentQueue.DocumentQueueStatusTypeCode = "Updated"; - var result = repository.Update(documentQueue); + var result = repository.UpdateAsync(documentQueue); context.CommitTransaction(); // Assert @@ -90,7 +90,7 @@ public void Update_Success_RemoveDocument() // Act documentQueue.DocumentQueueStatusTypeCode = "Updated"; documentQueue.Document = null; - var result = repository.Update(documentQueue, removeDocument: true); + var result = repository.UpdateAsync(documentQueue, removeDocument: true); context.CommitTransaction(); // Assert @@ -109,7 +109,7 @@ public void Update_Null() var repository = helper.CreateRepository(user); // Act - Func act = () => repository.Update(null); + Func act = () => repository.UpdateAsync(null); // Assert act.Should().ThrowAsync();