JLChen
2020-07-10 7b43f0f5c5dca88576efc0bb51bf95b523de90c9
Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs
@@ -77,7 +77,7 @@
                        });
                    }
                } catch (Exception ex) {
                    Console.WriteLine (ex.Message);
                    Utlis.WriteLine (ex.Message);
                } finally {
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Hide ();
@@ -88,7 +88,7 @@
            ItemButton.MouseUpEventHandler += (sender, e) => {
                Action action = () => {
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Start ("please wait...");
                        MainPage.Loading.Start ("Please wait...");
                    });
                    System.Threading.Tasks.Task.Run (() => {
                        try {
@@ -98,7 +98,7 @@
                                InitDevcieRow (alexaDeviceLista, bodyView);
                            });
                        } catch (Exception ex) {
                            Console.WriteLine (ex.Message);
                            Utlis.WriteLine (ex.Message);
                        } finally {
                            Application.RunOnMainThread (() => {
                                MainPage.Loading.Hide ();
@@ -111,7 +111,7 @@
                    System.Threading.Tasks.Task.Factory.StartNew (() => {
                        try {
                            Application.RunOnMainThread (() => {
                                MainPage.Loading.Start ("please wait...");
                                MainPage.Loading.Start ("Please wait...");
                            });
                            foreach (var newDevicePath in roomDeviceFilePathList) {
                                var common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (newDevicePath)));
@@ -122,7 +122,11 @@
                                if (common != null) {
                                    var oldDevice = alexaDeviceLista.Find ((obj) => obj.SubnetID == common.SubnetID && obj.DeviceID == common.DeviceID && obj.LoopID == common.LoopID && obj.DeviceType == common.Type.ToString ());
                                    if (oldDevice == null) {
                                        AddDevice (common);
                                        var isSuccess = AddDevice (common);
                                        if (!isSuccess) {
                                            //跳出循环
                                            break;
                                        }
                                    }
                                }
                            }
@@ -131,7 +135,7 @@
                                if (!roomDeviceFilePathList.Contains (oldDevicePath)) {
                                    DelDevice (oldDevice.Id);
                                    Console.WriteLine ("delDevice " + oldDevice.DeviceName);
                                    Utlis.WriteLine ("delDevice " + oldDevice.DeviceName);
                                }
                            }
@@ -356,7 +360,11 @@
                                            }
                                        }
                                        AddScene (uploadScene);
                                        var isSuccess = AddScene (uploadScene);
                                        if (!isSuccess) {
                                            //跳出循环
                                            break;
                                        }
                                    }
                                }
@@ -372,7 +380,7 @@
                            });
                        } catch (Exception ex) {
                            Console.WriteLine (ex.Message);
                            Utlis.WriteLine (ex.Message);
                        } finally {
                            Application.RunOnMainThread (() => {
                                MainPage.Loading.Hide ();
@@ -384,7 +392,7 @@
                System.Threading.Tasks.Task.Factory.StartNew (() => {
                    try {
                        Application.RunOnMainThread (() => {
                            MainPage.Loading.Start ("please wait...");
                            MainPage.Loading.Start ("Please wait...");
                        });
                        var tempRoom = new Room ();
                        foreach (var device in alexaDeviceLista) {//特殊处理服务器与本地设备类型不一样的设备
@@ -415,7 +423,7 @@
                            userDeviceListPage.ShowPage (action, saveAction);
                        });
                    } catch (Exception ex) {
                        Console.WriteLine (ex.Message);
                        Utlis.WriteLine (ex.Message);
                    } finally {
                        Application.RunOnMainThread (() => {
                            MainPage.Loading.Hide ();
@@ -434,9 +442,13 @@
            var deviceList = new List<UpdateDeviceObj> ();
            var requestObj = new GetDeviceListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson, true);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString());
            var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson);
            if (revertObj.StateCode.ToUpper () == "SUCCESS") {
                deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString ());
            } else {
                //2020-06-29 弹窗提示错误
            }
            return deviceList;
        }
@@ -459,11 +471,52 @@
            }
            //var requestObj = new UploadDevicesObj () { Device = uploadDevice };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (uploadDevice);
            var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson, true);
            var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                return true;
            }else if (revertObj.StateCode == "Exist") {
                Application.RunOnMainThread (() => {
                    MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + device.Name + " )");
                });
                return true;
            } else {
                //2020-06-29 弹出提示错误
                ShowUploadDevicesInfo (revertObj.StateCode);
            }
            return false;
        }
        /// <summary>
        /// 上传设备 错误提示
        /// </summary>
        /// <param name="stateCodeStr"></param>
        void ShowUploadDevicesInfo (string stateCodeStr)
        {
            string mes = "";
            if (stateCodeStr == "NoRecord") {
                //住宅未绑定网关!
                mes = ErrorCode.HomeNoRecord;
            } else if (stateCodeStr == "NoExist") {
                //住宅不存在!
                mes = ErrorCode.HomeNoExist;
            } else if (stateCodeStr == "Exist") {
                //设备名称已存在
                mes = ErrorCode.NameExist;
            } else if (stateCodeStr == ErrorCode.NetworkError) {
                mes = ErrorCode.NetworkError;
            } else {
                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
            }
            if (!string.IsNullOrEmpty (mes)) {
                Application.RunOnMainThread (() => {
                    MainPage.AddTip (ErrorCode.AddFailed + " " + mes);
                    //new Alert ("", ErrorCode.AddFailed + " " + mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                });
            }
        }
        /// <summary>
@@ -473,9 +526,12 @@
        {
            var requestObj = new DelDeviceObj () { Id = commonId };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson, true);
            var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                return true;
            } else {
                //2020-06-29 弹窗提示错误
            }
            return false;
        }
@@ -490,9 +546,11 @@
            var sceneList = new List<SceneByRegion> ();
            var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson, true);
            var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SceneByRegion>> (revertObj.ResponseData.ToString ());
            } else {
                //2020-06-29 弹窗提示错误
            }
            return sceneList;
        }
@@ -503,7 +561,7 @@
        public bool AddScene (SceneAndDeviceList sceneMark)
        {
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (sceneMark);
            var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson, true);
            var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                //var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString };
                //var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj);
@@ -511,7 +569,16 @@
                //if (revertAddDeviceObj.StateCode.ToUpper() == "SUCCESS") {
                    return true;
                //}
            } else if (revertObj.StateCode == "Exist") {
                Application.RunOnMainThread (() => {
                    MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + sceneMark.SceneName + " )");
                });
                return true;
            } else {
                //2020-06-29 弹出提示错误
                ShowUploadDevicesInfo (revertObj.StateCode);
            }
            return false;
        }
@@ -536,9 +603,12 @@
        {
            var requestObj = new DeleteSceneObj () { Id = sceneId };
            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
            var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson, true);
            var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson);
            if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                return true;
            } else {
                //2020-06-29 弹窗提示错误
            }
            return false;
        }