Exemplo n.º 1
0
        public BybApiAboutWebModel Get()
        {
            var model = new BybApiAboutWebModel();

            model.ThisApiVersionNumber   = BybApiVersions.Current.Number;
            model.ThisApiVersionName     = BybApiVersions.Current.VersionName;
            model.AppVersionLatestName   = SnookerBybMobileVersions.Current.VersionName;
            model.AppVersionLatestNumber = SnookerBybMobileVersions.Current.Number;

            int    versionUpgradeRecommended = 23;
            string strVersion = Environment.GetEnvironmentVariable("SNOOKER_BYB_VERSION_UPGRADE_RECOMMENDED");

            if (strVersion != null)
            {
                int.TryParse(strVersion, out versionUpgradeRecommended);
            }
            model.AppVersionUpgradeRecommended = versionUpgradeRecommended;

            int versionUpgradeRequired = 23;

            strVersion = Environment.GetEnvironmentVariable("SNOOKER_BYB_VERSION_UPGRADE_REQUIRED");
            if (strVersion != null)
            {
                int.TryParse(strVersion, out versionUpgradeRequired);
            }
            model.AppVersionUpgradeRequired = versionUpgradeRequired;

            return(model);
        }
Exemplo n.º 2
0
        public void CheckApiVersionAndNotifyIfNeeded()
        {
            if (App.LoginAndRegistrationLogic.RegistrationStatus != RegistrationStatusEnum.Registered)
            {
                return;
            }

            Task.Run(async() =>
            {
                BybApiAboutWebModel aboutApi = await App.WebService.About();
                if (aboutApi == null)
                {
                    return; // no internet access
                }
                // show "upgrade required" if necessary
                int currentVersionNumber = SnookerBybMobileVersions.Current.Number;
                if (currentVersionNumber <= aboutApi.AppVersionUpgradeRequired)
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        UpgradeRequiredPage dlg = new UpgradeRequiredPage();
                        NavPage.Navigation.PushModalAsync(dlg);
                    });
                }
                else if (currentVersionNumber <= aboutApi.AppVersionUpgradeRecommended)
                {
                    if ((DateTime.Now - lastTimeNotifiedAboutTheUpdate).TotalDays > 1)
                    {
                        lastTimeNotifiedAboutTheUpdate = DateTime.Now;
                        Device.BeginInvokeOnMainThread(() =>
                        {
                            App.Navigator.DisplayAlertRegular("A new version of the Snooker Byb has been released. We recommend updating to the newest version.");
                        });
                    }
                }

                // send "device info" to the server
                if ((DateTime.Now - lastTimeSentDeviceInfo).TotalHours > 1)
                {
                    if (await App.WebService.SendDeviceInfo() == true)
                    {
                        lastTimeSentDeviceInfo = DateTime.Now;
                    }
                }
            });
        }
Exemplo n.º 3
0
        public async Task <BybApiAboutWebModel> About()
        {
            string url = WebApiUrl + "About";

            try
            {
                string responseJson = await this.sendGetRequestAndReceiveResponse(url, true);

                BybApiAboutWebModel model = JsonConvert.DeserializeObject <BybApiAboutWebModel>(responseJson);

                return(model);
            }
            catch (Exception exc)
            {
                LastException    = exc;
                LastExceptionUrl = url;
                return(null);
            }
        }