using System; using System.Collections.Generic; using System.Text.Json; using System.Threading.Tasks; using Complyance.SDK; using Complyance.SDK.Exceptions; using Complyance.SDK.Models; using Environment = Complyance.SDK.Models.Environment; namespace Complyance.SDK.TestProject { public static class RetrievalStatusSample { private static readonly JsonSerializerOptions JsonOptions = new JsonSerializerOptions { WriteIndented = true }; // Set one or both IDs before running. private const string DocumentId = ""; private const string SubmissionId = "01KPQRKVJM12AMKMT6AVY3GBG4"; public static async Task RunAsync() { try { ConfigureSdk(); if (!IsPlaceholderOrEmpty(DocumentId)) { Console.WriteLine($"Fetching status by documentId: {DocumentId}"); var byDocument = await GETSUnifySDK.GetDocumentStatusAsync(DocumentId); PrintStatus("DocumentId", byDocument); } if (!IsPlaceholderOrEmpty(SubmissionId)) { Console.WriteLine($"Fetching status by submissionId: {SubmissionId}"); var bySubmission = await GETSUnifySDK.GetSubmissionStatusAsync(SubmissionId); PrintStatus("SubmissionId", bySubmission); } if (IsPlaceholderOrEmpty(DocumentId) && IsPlaceholderOrEmpty(SubmissionId)) { Console.WriteLine("Please set DocumentId and/or SubmissionId constants in this file before running."); } } catch (SDKException e) { Console.Error.WriteLine($"SDK error: {e.Message}"); if (e.ErrorDetail != null) { Console.Error.WriteLine($"Error code: {e.ErrorDetail.Code}"); Console.Error.WriteLine($"Suggestion: {e.ErrorDetail.Suggestion}"); } } catch (Exception e) { Console.Error.WriteLine(e); } } private static void ConfigureSdk() { var config = new SDKConfig( "ak_dfc7321146db8cfcf9cb35c539fa", Environment.Sandbox, new List()); GETSUnifySDK.Configure(config); Console.WriteLine($"SDK configured: {Environment.Sandbox} ({Environment.Sandbox.GetBaseUrl()})"); } private static void PrintStatus(string mode, DocumentStatusResponse response) { Console.WriteLine($"\n=== Retrieval By {mode} ==="); Console.WriteLine($"success: {response.Success}"); Console.WriteLine($"message: {response.Message}"); Console.WriteLine("rawResponse:"); Console.WriteLine(JsonSerializer.Serialize(response, JsonOptions)); if (response.Data == null) { Console.WriteLine("No data returned"); return; } var data = response.Data; Console.WriteLine($"submissionId: {data.SubmissionId}"); Console.WriteLine($"documentId: {data.DocumentId}"); Console.WriteLine($"documentNumber: {data.DocumentNumber}"); Console.WriteLine($"state: {data.State}"); Console.WriteLine($"isTerminal: {data.IsTerminal}"); Console.WriteLine($"lastUpdatedAt: {data.LastUpdatedAt}"); if (data.Compliance != null) { Console.WriteLine($"compliance.uuid: {data.Compliance.Uuid}"); Console.WriteLine($"compliance.ftaApprovedStatus: {data.Compliance.FtaApprovedStatus}"); Console.WriteLine($"compliance.businessProcessIdentifier: {data.Compliance.BusinessProcessIdentifier}"); Console.WriteLine($"compliance.specificationIdentifier: {data.Compliance.SpecificationIdentifier}"); } } private static bool IsPlaceholderOrEmpty(string? value) { if (value == null) { return true; } var normalized = value.Trim(); return normalized.Length == 0 || "PASTE_DOCUMENT_ID_HERE".Equals(normalized, StringComparison.Ordinal) || "PASTE_SUBMISSION_ID_HERE".Equals(normalized, StringComparison.Ordinal); } } }