public virtual Dictionary <string, object> ToDictionary(DynamicsGatewayOptions options, Guid organisationId, IDictionary <string, object> auditOrigin) { var dictionary = new Dictionary <string, object> { { "ContactPreference", DebtorContactPreference.ToDictionary() }, { "DebtorDetails", DebtorDetails.ToDictionary() }, { "CurrentAddress", CurrentAddress.ToDictionary() }, { "PreviousAddresses", PreviousAddresses?.Select(x => x.ToDictionary()).ToList() }, { "Debts", Debts?.Select(x => x.ToDictionary()).ToList() }, { "AdHocDebts", AdHocDebts?.Select(x => x.ToDictionary()).ToList() }, { "Businesses", Businesses?.Select(x => x.ToDictionary()).ToList() }, { "DebtorNominatedContacts", DebtorNominatedContacts?.Select(x => x.ToDictionary(options)).ToList() }, { "ManagingMoneyAdviserOrganisationId", organisationId }, { "Origin", auditOrigin } }; var payload = JsonSerializer.Serialize(new Dictionary <string, object> { { "BreathingSpaceMoratorium", dictionary } }); var dictionaryWrapper = new Dictionary <string, object> { { "Request", payload } }; return(dictionaryWrapper); }