/// <summary>
    /// Purge the campaign tracking data
    /// </summary>
    public static xPromoCampaignTrackingListData PurgeCampaigns(xPromoCampaignListData campaignListList, xPromoCampaignTrackingListData trackingData)
    {
        List <xPromoCampaignTrackingData> trackingDataList = new List <xPromoCampaignTrackingData>();

        for (int i = 0; i < campaignListList.games.Length; i++)
        {
            xPromoCampaignTrackingData trackingDataItem = GetTrackingDataItem(trackingData, campaignListList.games[i].campaignId);
            if (trackingDataItem == null)
            {
                trackingDataItem = new xPromoCampaignTrackingData {
                    campaignId = campaignListList.games[i].campaignId, views = 0, todayViews = 0
                };
            }
            trackingDataList.Add(trackingDataItem);
        }

        xPromoCampaignTrackingListData newTrackingData = new xPromoCampaignTrackingListData();

        newTrackingData.campaigns = new xPromoCampaignTrackingData[trackingDataList.Count];
        for (int i = 0; i < trackingDataList.Count; i++)
        {
            newTrackingData.campaigns[i] = trackingDataList[i];
        }

        // Save to local the new tracking data
        SaveToLocal(newTrackingData);

        return(newTrackingData);
    }
Example #2
0
    void PopupateDropdownList()
    {
        campaignListData = xPromoManager.Instance.GetCampaignListData();

        if (campaignListData != null && campaignListData.games != null)
        {
            dropdown.options = new List <TMP_Dropdown.OptionData>();
            for (int i = 0; i < campaignListData.games.Length; i++)
            {
                dropdown.options.Add(new TMP_Dropdown.OptionData(campaignListData.games[i].campaignId));
            }

            dropdown.value = -1;
            dropdown.value = 0;
        }
    }
 public void LogCampaigns(xPromoCampaignListData campaignListData)
 {
     _campaignsLog = "";
     if (campaignListData != null && campaignListData.games.Length > 0)
     {
         for (int i = 0; i < campaignListData.games.Length; i++)
         {
             _campaignsLog += $"{campaignListData.games[i].campaignId}\t{campaignListData.games[i].game}\t{campaignListData.games[i].maxViews}\t{campaignListData.games[i].maxViewsDay}\n";
         }
     }
     else
     {
         _campaignsLog = "Empty";
     }
     OnLog?.Invoke(_campaignsLog);
     _notifyOnChange?.Invoke();
 }
    private bool LoadCampaingDataFromJson(string json)
    {
        bool success = false;

        try {
            campaignListData = JsonUtility.FromJson <xPromoCampaignListData>(json);
            if (campaignListData != null || campaignListData.games != null)
            {
                success = true;
            }
            else
            {
                Log("Campaign data is empty.");
            }
        }
        catch (Exception e) {
            Log($"Error reading json. Error: {e.Message}");
        }
        return(success);
    }
    /// <summary>
    /// Returns the list that should be downloaded if necessary
    /// </summary>
    private List <string> buildAssetsToDownloadList(xPromoCampaignListData campaignListList)
    {
        List <string> assetsToDownload = new List <string>();

        for (int i = 0; i < campaignListList.games.Length; i++)
        {
            if (!string.IsNullOrEmpty(campaignListList.games[i].video) && !assetsToDownload.Contains(campaignListList.games[i].video))
            {
                assetsToDownload.Add(campaignListList.games[i].video);
            }

            if (!string.IsNullOrEmpty(campaignListList.games[i].gameLogo) && !assetsToDownload.Contains(campaignListList.games[i].gameLogo))
            {
                assetsToDownload.Add(campaignListList.games[i].gameLogo);
            }

            if (!string.IsNullOrEmpty(campaignListList.games[i].gameScreenshot) && !assetsToDownload.Contains(campaignListList.games[i].gameScreenshot))
            {
                assetsToDownload.Add(campaignListList.games[i].gameScreenshot);
            }
        }

        return(assetsToDownload);
    }