diff --git a/FitConnect/Subscriber.cs b/FitConnect/Subscriber.cs index a596d0c29b54d9545cf663a96792afee53651c78..e37a5c4d395c97ba3aab6bad1e5f65eda920dd89 100644 --- a/FitConnect/Subscriber.cs +++ b/FitConnect/Subscriber.cs @@ -80,6 +80,8 @@ public class Subscriber : FitConnectClient, if (!valid) { Logger?.LogWarning("Invalid metadata: {MetaData}", metaDataString); + // TODO: Check if problem is correct + RejectSubmission(submission, Problems.SchemaViolation); throw new Exception("Metadata validation failed"); } } @@ -95,6 +97,9 @@ public class Subscriber : FitConnectClient, Logger?.LogWarning("Data hash mismatch: {DataHash} != {CalculatedHash}", submission.Metadata?.ContentStructure.Data.Hash.Content, FitEncryption.CalculateHash(dataString)); + + // TODO: Check if problem is correct + RejectSubmission(submission, Problems.EncryptionIssue); throw new Exception("Data hash mismatch"); } } @@ -137,6 +142,10 @@ public class Subscriber : FitConnectClient, CompleteSubmission(Submission!, FinishSubmissionStatus.Rejected, problems); } + private void RejectSubmission(Submission submission, params Problems[] problems) { + CompleteSubmission(submission, FinishSubmissionStatus.Rejected, problems); + } + // public void ForwardSubmission() { // CompleteSubmission(Submission!, FinishSubmissionStatus.Forwarded);