From df72f0f42a10e0d2e202dbf28cb8853927bbcea3 Mon Sep 17 00:00:00 2001 From: Klaus Fischer <klaus.fischer@eloware.com> Date: Tue, 18 Apr 2023 15:09:48 +0200 Subject: [PATCH] Wrapped GetStatusForSubmission in specific client calls --- FitConnect/FitConnectClient.cs | 24 +++++++------------ FitConnect/Sender.cs | 11 +++++++-- FitConnect/Subscriber.cs | 13 +++++++--- Tests/E2ETest/StraightForwardTest.cs | 2 +- .../StraightPreEncryptedForwardTest.cs | 2 +- 5 files changed, 29 insertions(+), 23 deletions(-) diff --git a/FitConnect/FitConnectClient.cs b/FitConnect/FitConnectClient.cs index 05580fd7..57c02848 100644 --- a/FitConnect/FitConnectClient.cs +++ b/FitConnect/FitConnectClient.cs @@ -190,24 +190,16 @@ public abstract class FitConnectClient { /// <returns></returns> protected virtual async Task<SubmissionStatus> GetStatusForSubmissionAsync( SentSubmission submission, bool withAuthenticationTags) { - try { - var eventLog = await GetEventLogAsync(submission.CaseId, submission.DestinationId, - !withAuthenticationTags); + var eventLog = await GetEventLogAsync(submission.CaseId, submission.DestinationId, + !withAuthenticationTags); - var status = eventLog - .Where(e => e.SubmissionId == submission.SubmissionId) - .Select(e => CreateSubmissionStatusFromSet(submission, e, withAuthenticationTags)) - .OrderBy(e => (int)e.SubmissionState) - .Last(); + var status = eventLog + .Where(e => e.SubmissionId == submission.SubmissionId) + .Select(e => CreateSubmissionStatusFromSet(submission, e, withAuthenticationTags)) + .OrderBy(e => (int)e.SubmissionState) + .Last(); - return status; - } - catch (Exception e) { - Logger?.LogError(e, "Error while retrieving status for submission"); - throw new FitConnectException("Error while retrieving status for submission", - FitConnectException.ErrorTypeEnum.SubmissionStatusRetrievalError, - e); - } + return status; } private static SubmissionStatus CreateSubmissionStatusFromSet(SentSubmission submission, diff --git a/FitConnect/Sender.cs b/FitConnect/Sender.cs index 50beeaba..28a87094 100644 --- a/FitConnect/Sender.cs +++ b/FitConnect/Sender.cs @@ -53,8 +53,15 @@ public class Sender : FitConnectClient, ISender { return publicKey; } - public async Task<SubmissionStatus> GetStatusForSubmissionAsync(SentSubmission submission) - => await base.GetStatusForSubmissionAsync(submission, true); + public async Task<SubmissionStatus> GetStatusForSubmissionAsync(SentSubmission submission) { + try { + return await base.GetStatusForSubmissionAsync(submission, true); + } + catch (Exception e) { + Logger?.LogError("Error while getting status for submission"); + throw new FitConnectSenderException("Error while getting status for submission", e); + } + } public async Task<SentSubmission> SendAsync(SendableSubmission submission) { diff --git a/FitConnect/Subscriber.cs b/FitConnect/Subscriber.cs index 3f89f104..ab12e815 100644 --- a/FitConnect/Subscriber.cs +++ b/FitConnect/Subscriber.cs @@ -283,9 +283,16 @@ public class Subscriber : FitConnectClient, IReceivedSubmission, } public async Task<SubmissionStatus> GetStatusForSubmission(Guid destinationId, Guid caseId, - Guid submissionId) - => await base.GetStatusForSubmissionAsync( - new SentSubmission(submissionId, caseId, destinationId, null), false); + Guid submissionId) { + try { + return await base.GetStatusForSubmissionAsync( + new SentSubmission(submissionId, caseId, destinationId, null), false); + } + catch (Exception e) { + Logger?.LogError("Error getting status for submission"); + throw new FitConnectSubscriberException("Error getting status for submission", e); + } + } public Submission? Submission { get; private set; } diff --git a/Tests/E2ETest/StraightForwardTest.cs b/Tests/E2ETest/StraightForwardTest.cs index 122a78e1..1bef9de6 100644 --- a/Tests/E2ETest/StraightForwardTest.cs +++ b/Tests/E2ETest/StraightForwardTest.cs @@ -231,7 +231,7 @@ public class StraightForwardTest : EndToEndTestBase { var exception = Assert.Throws<AggregateException>(() => Sender.GetStatusForSubmissionAsync(manipulated).Wait()); - exception.InnerExceptions.Any(e => e is FitConnectException).Should().BeTrue(); + exception.InnerExceptions.Any(e => e is FitConnectSenderException).Should().BeTrue(); } diff --git a/Tests/E2ETest/StraightPreEncryptedForwardTest.cs b/Tests/E2ETest/StraightPreEncryptedForwardTest.cs index 39917261..e1654a3a 100644 --- a/Tests/E2ETest/StraightPreEncryptedForwardTest.cs +++ b/Tests/E2ETest/StraightPreEncryptedForwardTest.cs @@ -168,7 +168,7 @@ public class StraightPreEncryptedForwardTest : EndToEndTestBase { var exception = Assert.Throws<AggregateException>(() => Sender.GetStatusForSubmissionAsync(manipulated).Wait()); - (exception!.InnerExceptions.FirstOrDefault(e => e is FitConnectException)! + (exception!.InnerExceptions.FirstOrDefault(e => e is FitConnectSenderException)! .InnerException is AuthenticationTagException).Should().BeTrue(); } } -- GitLab