public PostConsentGdprRequest(string requestUUID, string idfaStatus, LocalState localState, IncludeDataPostGetMessagesRequest includeData, ConsentGdprSaveAndExitVariables pmSaveAndExitVariables)
 {
     this.requestUUID            = requestUUID;
     this.idfaStatus             = idfaStatus;
     this.localState             = localState;
     this.includeData            = includeData;
     this.pmSaveAndExitVariables = pmSaveAndExitVariables;
 }
Esempio n. 2
0
    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;
        }
    }
Esempio n. 3
0
    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); });
        }
    }