public static void Consent(int actionCode) { lastActionCode = actionCode; switch (actionCode) { case 1: ConsentSaveAndExitVariables saveAndExitVariables = null; switch (CmpCampaignPopupQueue.CurrentCampaignToShow()) { case 0: saveAndExitVariables = new ConsentGdprSaveAndExitVariables( language: language, privacyManagerId: privacyManagerId, categories: CmpPmSaveAndExitVariablesContext.GetAcceptedCategories(), vendors: CmpPmSaveAndExitVariablesContext.GetAcceptedVendors(), specialFeatures: CmpPmSaveAndExitVariablesContext.GetSpecialFeatures()); break; case 2: saveAndExitVariables = new ConsentCcpaSaveAndExitVariables( language: language, privacyManagerId: privacyManagerId, rejectedCategories: CmpPmSaveAndExitVariablesContext.GetAcceptedCategories(), rejectedVendors: CmpPmSaveAndExitVariablesContext.GetAcceptedVendors(), specialFeatures: CmpPmSaveAndExitVariablesContext.GetSpecialFeatures()); break; } NetworkClient.Instance.Consent(actionType: actionCode, environment: environment, language: language, privacyManagerId: privacyManagerId, onSuccessAction: OnConsentSuccessCallback, onErrorAction: OnExceptionCallback, pmSaveAndExitVariables: saveAndExitVariables); break; default: NetworkClient.Instance.Consent(actionType: actionCode, environment: environment, language: language, privacyManagerId: privacyManagerId, onSuccessAction: OnConsentSuccessCallback, onErrorAction: OnExceptionCallback); break; } }
public void Consent(/*CONSENT_ACTION_TYPE == */ int actionType, int environment, string language, string privacyManagerId, Action <string> onSuccessAction, Action <Exception> onErrorAction, ConsentSaveAndExitVariables pmSaveAndExitVariables = null) { var dict = new Dictionary <string, string> { { "type", "RecordString" } }; var includeData = new IncludeDataPostGetMessagesRequest() { localState = dict, TCData = dict // messageMetaData = dict, }; ConsentSaveAndExitVariables concretePmSaveAndExitVariables; PostConsentRequest body = null; switch (CmpCampaignPopupQueue.CurrentCampaignToShow()) { case 0: if (pmSaveAndExitVariables != null) { concretePmSaveAndExitVariables = pmSaveAndExitVariables as ConsentGdprSaveAndExitVariables; } else { concretePmSaveAndExitVariables = new ConsentGdprSaveAndExitVariables( language: language, privacyManagerId: privacyManagerId, categories: new ConsentGdprSaveAndExitVariablesCategory[] { }, vendors: new ConsentGdprSaveAndExitVariablesVendor[] { }, specialFeatures: new ConsentGdprSaveAndExitVariablesSpecialFeature[] { } ); } body = new PostConsentGdprRequest( requestUUID: GUID.Value, idfaStatus: "accepted", localState: SaveContext.GetLocalState(), includeData: includeData, pmSaveAndExitVariables: (ConsentGdprSaveAndExitVariables)concretePmSaveAndExitVariables ); break; case 2: if (pmSaveAndExitVariables != null) { //remove if vendor._id == null concretePmSaveAndExitVariables = pmSaveAndExitVariables as ConsentCcpaSaveAndExitVariables; List <ConsentGdprSaveAndExitVariablesVendor> rej = new List <ConsentGdprSaveAndExitVariablesVendor>(); foreach (var rejected in (pmSaveAndExitVariables as ConsentCcpaSaveAndExitVariables).rejectedVendors) { if (!string.IsNullOrEmpty(rejected._id)) { rej.Add(rejected); } } (concretePmSaveAndExitVariables as ConsentCcpaSaveAndExitVariables).rejectedVendors = rej.ToArray(); } else { concretePmSaveAndExitVariables = new ConsentCcpaSaveAndExitVariables( language: language, privacyManagerId: privacyManagerId, rejectedCategories: new ConsentGdprSaveAndExitVariablesCategory[] { }, rejectedVendors: new ConsentGdprSaveAndExitVariablesVendor[] { }, specialFeatures: new ConsentGdprSaveAndExitVariablesSpecialFeature[] { } ); } body = new PostConsentCcpaRequest( requestUUID: GUID.Value, idfaStatus: "accepted", localState: SaveContext.GetLocalState(), includeData: includeData, pmSaveAndExitVariables: (ConsentCcpaSaveAndExitVariables)concretePmSaveAndExitVariables ); break; } if (body == null) { onErrorAction?.Invoke(new Exception("Message body is null!!!")); } else { Task.Factory.StartNew(async delegate { await PostConsent(actionType, environment, body, onSuccessAction, onErrorAction); }); } }