コード例 #1
0
        private void Serialize()
        {
            var anchorsSave = new AnchorsSave();

            foreach (var rectTransform in _transforms)
            {
                anchorsSave.Anchors.Add(new Anchor(rectTransform.anchorMin, rectTransform.anchorMax));
            }

            JsonSerializator.SerializeClass(anchorsSave, "anchorsSave.json", Application.dataPath);
        }
コード例 #2
0
        private void UnSerialize()
        {
            AnchorsSave anchorsSave =
                JsonSerializator.ReadSerialize <AnchorsSave>("AnchorsSave.json", Application.persistentDataPath);

            for (int i = 0; i < _transforms.Length; i++)
            {
                _transforms[i].anchorMin = anchorsSave.Anchors[i].MinAnchor;
                _transforms[i].anchorMax = anchorsSave.Anchors[i].MaxAnchor;
            }
        }
コード例 #3
0
        static void GetInfoCurrentClientJKH()
        {
            var response = httpService.GetInfoCurrentClientJKH(buildRequestBase());

            Console.WriteLine($"Статус код: {response.StatusCode}");
            CurrentUser.SetCurrentUser(new ClientJKH
            {
                User = new UserDomainBuilder().Build(response.User),
            });

            Console.WriteLine(JsonSerializator.SerializeByFormatOptions(response));
        }
コード例 #4
0
        public void UpdateCurrencyRates()
        {
            var currencyRatesInDb = _bankService.GetAllBanksWithLatestCurrencyRates();
            var currencyRatesStr  = _externalApiService.GetResponse("http://resources.finance.ua/ua/public/currency-cash.json");
            var currencyRates     = JsonSerializator <FinanceUaRates> .Deserialize(currencyRatesStr);

            foreach (var bank in currencyRatesInDb)
            {
                if (bank.Currencies[0].UpdateDate.Date == currencyRates.Date.Date)
                {
                    continue;
                }

                var org = currencyRates.Organizations.FirstOrDefault(b => b.OldId == bank.OldId);

                if (org?.Currencies.Usd != null && org.Currencies.Eur != null && org.Currencies.Rub != null)
                {
                    var rates = new Currencies()
                    {
                        UpdateDate = currencyRates.Date,
                        Usd        = new Usd()
                        {
                            BuyRate = org.Currencies.Usd.Ask, SellRate = org.Currencies.Usd.Bid
                        },
                        Eur = new Eur()
                        {
                            BuyRate = org.Currencies.Eur.Ask, SellRate = org.Currencies.Eur.Bid
                        },
                        Rub = new Rub()
                        {
                            BuyRate = org.Currencies.Rub.Ask, SellRate = org.Currencies.Rub.Bid
                        },
                    };

                    bank.Currencies.Add(rates);

                    _bankService.Update(bank);
                }
            }
        }
コード例 #5
0
        IEnumerator LoadBundleFromServer(string pathesSaveUrl, Action <AssetBundle> response, Fader fader)
        {
            Hash128 hash;

            while (!Caching.ready)
            {
                yield return(null);
            }

            if (_downloadedAssets.Contains(pathesSaveUrl))
            {
                fader.StatusText.text = "Data already download, load from cache";
                yield break;
            }

            var request = UnityWebRequest.Get(pathesSaveUrl);

            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                AssetBundleSave manifestData;
                if (File.Exists(_dataPath + "/" + AssetBundleSave.fileName))
                {
                    _downloadedAssets.Add(pathesSaveUrl);

                    manifestData = JsonSerializator.ReadSerialize <AssetBundleSave>(AssetBundleSave.fileName,
                                                                                    _dataPath);

                    fader.StatusText.text = "Internet connection failed, load last downloaded data";

                    hash = Hash128.Parse(manifestData?.AssetBundleHash);

                    request = UnityWebRequestAssetBundle.GetAssetBundle(
                        JsonSerializator.ReadSerialize <PathesSave>("pathesSave.json", Application.persistentDataPath)
                        .AssetBundleUrl, hash, 0);

                    yield return(request.SendWebRequest());

                    response(DownloadHandlerAssetBundle.GetContent(request));

                    yield break;
                }
                else
                {
                    Debug.Log("Error. Check internet connection!");
                    var errorPanel = Instantiate(_errorPanel, fader.transform);
                    errorPanel.CreatePanel(delegate
                    {
                        SceneManager.Instance.StopSceneLoad();
                        SceneManager.Instance.LoadScene("MainMenu", fader);
                    }, "Error. First run requires internet connection", "Main menu");
                    yield break;
                }
            }

            _downloadedAssets.Add(pathesSaveUrl);

            fader.StatusText.text = "Loading data from server...";

            JsonSerializator.SerializeClass(request.downloadHandler.text, "pathesSave.json",
                                            Application.persistentDataPath);

            var pathesSave = JsonUtility.FromJson <PathesSave>(request.downloadHandler.text);

            request = UnityWebRequest.Get(pathesSave.AnchorsSaveJsonUrl);

            yield return(request.SendWebRequest());

            JsonSerializator.SerializeClass(request.downloadHandler.text, "anchorsSave.json",
                                            Application.persistentDataPath);

            request = UnityWebRequest.Get(pathesSave.AssetBundleUrl + ".manifest");

            yield return(request.SendWebRequest());

            var hashRow = request.downloadHandler.text.Split("\n".ToCharArray())[5];

            hash = Hash128.Parse(hashRow.Split(':')[1].Trim());


            if (hash.isValid)
            {
                JsonSerializator.SerializeClass(new AssetBundleSave(hash), AssetBundleSave.fileName, _dataPath);

                request.Dispose();

                request = UnityWebRequestAssetBundle.GetAssetBundle(pathesSave.AssetBundleUrl, hash, 0);


                yield return(request.SendWebRequest());

                if (!request.isHttpError && !request.isNetworkError)
                {
                    response(DownloadHandlerAssetBundle.GetContent(request));
                }
                else
                {
                    response(null);
                }
            }
            else
            {
                response(null);
            }

            request.Dispose();
        }