public static void Show(string domain)
        {
            Action <bool> action = delegate(bool hasInternet) {
                if (hasInternet)
                {
                    Action <bool, string> loadConfigCallBack = delegate(bool success, string s) {
                        if (success)
                        {
                            data = LoadUserData();
                            CheckCrosspromotionStatus(data, false);
                            OpenWebview(domain);
                        }
                        else
                        {
                            errorAction.Invoke(Error.LoadConfig, s);
                        }
                    };
                    Coroutiner.StartCoroutine(LoadConfig(domain, loadConfigCallBack));
                }
                else
                {
                    errorAction.Invoke(Error.NoInternet, "");
                }
            };

            Coroutiner.StartCoroutine(Utils.CheckInternetConnection(action, domain));
        }
        public static void HasClaimedAllReward(string domain, Action <bool> callBack)
        {
            Action <bool, string> loadConfigCallBack = delegate(bool success, string s) {
                if (success)
                {
                    data = LoadUserData();
                    List <CrossPromotionItemConfig> items = crossPromotionConfig.GetList();
                    bool flag = true;
                    for (int i = 0; i < items.Count; i++)
                    {
                        if (!data.GetItem(items[i].id).isClaimed)
                        {
                            flag = false;
                            break;
                        }
                    }
                    callBack.Invoke(flag);
                }
                else
                {
                    callBack.Invoke(true);
                    errorAction.Invoke(Error.LoadConfig, s);
                }
            };

            Coroutiner.StartCoroutine(LoadConfig(domain, loadConfigCallBack));
        }
 private static void Save(CrossPromotionData d)
 {
     if (d != null)
     {
         string          text   = JsonMapper.ToJson(d);
         BinaryFormatter bf     = new BinaryFormatter();
         FileStream      stream = new FileStream(FilePath(), FileMode.Create);
         bf.Serialize(stream, text);
         stream.Close();
     }
 }
        static void CheckCrosspromotionStatus(CrossPromotionData data, bool isInit)
        {
            List <CrossPromotionItemConfig> items = crossPromotionConfig.GetList();

            for (int i = 0; i < items.Count; i++)
            {
                CrossPromotionItemConfig item = items[i];
                if (item.enable || isInit)
                {
                    CheckCrosspromotionStatus(data, item, isInit);
                }
            }
        }
 private static CrossPromotionData LoadUserData()
 {
     if (HasUserData())
     {
         BinaryFormatter bf     = new BinaryFormatter();
         FileStream      stream = new FileStream(FilePath(), FileMode.Open);
         string          data   = (string)bf.Deserialize(stream);
         stream.Close();
         return(JsonMapper.ToObject <CrossPromotionData>(data));
     }
     else
     {
         CrossPromotionData ret = new CrossPromotionData();
         CheckCrosspromotionStatus(ret, true);
         Save(ret);
         return(ret);
     }
 }
        static void CheckCrosspromotionStatus(CrossPromotionData data, CrossPromotionItemConfig item, bool isInit)
        {
            string id = Utils.GetValueFromUrl(item.GetLink(), "id");

            if (Utils.checkPackageAppIsPresent(id))
            {
                if (isInit)
                {
                    data.GetItem(item.id).SetInvalid();
                }
                else
                {
                    if (data.GetItem(item.id).isValid)
                    {
                        data.GetItem(item.id).SetComplete();
                    }
                }
            }
        }