黄学彪
2020-12-16 0d9f64668fd7350d6a21fd157e32009a96d98134
ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
@@ -249,35 +249,36 @@
#elif Android
            try
            {
                var requestObj = new SendDataToServer.DownLoadAndroidApk
                var pra = new { RequestVersion = CommonPage.RequestVersion, DistributedMark = distributedMark };
                var result = HdlFirmwareUpdateLogic.Current.RequestZigbeeHttps("FirmwareMana/DownloadPlatformUploadFirmwarePreLength", pra, 8);
                if (result == null || result.Length == 0)
                {
                    RequestVersion = CommonPage.RequestVersion,
                    DistributedMark = distributedMark
                };
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
                var bytesTotalLengthResult = CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DownloadPlatformUploadFirmwarePreLength", Encoding.UTF8.GetBytes(requestJson));
                if (bytesTotalLengthResult == null || bytesTotalLengthResult.ResponseData == null)
                {
                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.UpdateAppFail));
                    return;
                }
                var bytesTotalLength = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(bytesTotalLengthResult.ResponseData.ToString());
                var jobject = Newtonsoft.Json.Linq.JObject.Parse(Encoding.UTF8.GetString(result));
                if (jobject.Property("StateCode") == null || jobject["StateCode"].ToString().ToUpper() != "SUCCESS")
                {
                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.UpdateAppFail));
                    return;
                }
                var bytesTotalLength = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(jobject["ResponseData"].ToString());
                if (bytesTotalLength == 0)
                {
                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.UpdateAppFail));
                    return;
                }
                ApkBytesTotalLength = bytesTotalLength;
                var bytes = await DownLoadApkAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(requestJson));
                var bytes = await DownLoadApkAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(pra)));
                if (bytes == null)
                {
                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.UpdateAppFail));
                    return;
                }
                if (bytes.ToString().Contains("DownloadFail"))
                {
                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
                    return;
                }
                var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "home.apk");
@@ -355,46 +356,39 @@
        /// 获取 Android-APP 版本信息
        /// </summary>
        /// <returns>The https app version async.</returns>
        private Common.ResponseEntity.ApkInfoOBJ RequestHttpsAndroidAppVersionAsync()
        private ApkInfoOBJ RequestHttpsAndroidAppVersionAsync()
        {
            try
            {
                var requestOBJ = new SendDataToServer.GetAndroidApkInfoOBJ
                {
                    Name = "ZigbeeApp",
                    RequestVersion = CommonPage.CodeIDString
                };
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestOBJ);
                var result = CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DetectionPlatformUploadFirmware", System.Text.Encoding.UTF8.GetBytes(requestJson));
                if (result == null)
                var pra = new { Name = "ZigbeeApp", RequestVersion = Common.CommonPage.RequestVersion };
                var result = HdlFirmwareUpdateLogic.Current.RequestZigbeeHttps("FirmwareMana/DetectionPlatformUploadFirmware", pra, 4);
                if (result == null || result.Length == 0)
                {
                    return null;
                }
                if (result.StateCode.ToUpper() == "SUCCESS")
                var jobject = Newtonsoft.Json.Linq.JObject.Parse(Encoding.UTF8.GetString(result));
                if (jobject.Property("StateCode") == null || jobject["StateCode"].ToString().ToUpper() != "SUCCESS")
                {
                    if (result.ResponseData == null)
                    {
                        return null;
                    }
                    var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ApkInfoRes>(result.ResponseData.ToString());
                    if (responeData == null || responeData.pageData == null || responeData.pageData.Count == 0)
                    {
                        return null;
                    }
                    Common.ResponseEntity.ApkInfoOBJ apkInfoOBJ = null;
                    for (int i = 0; i < responeData.pageData.Count; i++)
                    {
                        var apkInfo = responeData.pageData[i];
                        if (apkInfoOBJ == null || apkInfo.FirmwareVersion.CompareTo(apkInfoOBJ.FirmwareVersion) > 0)
                        {
                            apkInfoOBJ = apkInfo;
                        }
                    }
                    return apkInfoOBJ;
                    return null;
                }
                return null;
                string resultValue = jobject["ResponseData"].ToString();
                var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<ApkInfoRes>(resultValue);
                if (responeData == null || responeData.pageData == null || responeData.pageData.Count == 0)
                {
                    return null;
                }
                ApkInfoOBJ apkInfoOBJ = null;
                for (int i = 0; i < responeData.pageData.Count; i++)
                {
                    var apkInfo = responeData.pageData[i];
                    if (apkInfoOBJ == null || apkInfo.FirmwareVersion.CompareTo(apkInfoOBJ.FirmwareVersion) > 0)
                    {
                        apkInfoOBJ = apkInfo;
                    }
                }
                return apkInfoOBJ;
            }
            catch (Exception ex)
            {
@@ -413,10 +407,9 @@
            try
            {
                webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                webClient.Headers.Add(HttpRequestHeader.Authorization, Config.Instance.Token);
                webClient.UploadProgressChanged += Client_DownloadProgressChanged;
                webClient.UploadDataCompleted += Client_UploadCompleted;
                var result = webClient.UploadDataTaskAsync($"{CommonPage.RequestHttpsHost}/{requestUrl}", "POST", byteData);
                var result = webClient.UploadDataTaskAsync($"{HdlFirmwareUpdateLogic.Current.RequestHttpsHost}/{requestUrl}", "POST", byteData);
                if (result == null)
                {
                    return null;
@@ -470,5 +463,30 @@
        }
#endif
        //[Serializable]
        public class ApkInfoRes
        {
            public int PageIndex;
            public int PageSize;
            public int TotalCount;
            public int TotalPages;
            public bool HasPreviousPage;
            public bool HasNextPage;
            public List<ApkInfoOBJ> pageData = new List<ApkInfoOBJ> { };
        }
        /// <summary>
        /// 下载apk
        /// </summary>
        [Serializable]
        public class ApkInfoOBJ
        {
            public string Name { get; set; }
            public string FirmwareVersion { get; set; }
            public string Remarks { get; set; }
            public string DistributedMark { get; set; }
            public string Id { get; set; }
            public string CreatedOnUtc { get; set; }
        }
    }
}