From 5a1e9eca07efd4a7e2076ff7ff25ad313c4b9e78 Mon Sep 17 00:00:00 2001
From: Klaus Fischer <klaus.fischer@eloware.com>
Date: Tue, 11 Oct 2022 07:10:35 +0200
Subject: [PATCH] Added Metadata and Hash reject

---
 FitConnect/Subscriber.cs | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/FitConnect/Subscriber.cs b/FitConnect/Subscriber.cs
index a596d0c2..e37a5c4d 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);
-- 
GitLab