CrabtreeOn,印度客户定制APP,迁移2.0平台版本
JLChen
2021-03-04 ac3c6b64df51443519d3a27fa8cf0d25dd6ff6d7
Crabtree/SmartHome/HDL/Common/HDLLinkUtlis.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using Shared;
using Shared.IO;
using Shared.SimpleControl;
namespace Shared
{
@@ -116,6 +117,71 @@
        }
        #endregion
        /// <summary>
        /// 一键将本地回路设备和场景数据转换
        /// 然后上传oid、sid、以及场景列表
        /// </summary>
        /// <returns></returns>
        public void OneclickUpload ()
        {
            MainPage.Loading.Start ("Uploading...");
            System.Threading.Tasks.Task.Run (() => {
                try {
                    var res = false;
                    res = UploadOidAndSidList ();
                    if (res) {
                        res = GetFunctionList ();
                        if (res) {
                            res = UploadSecneList ();
                        }
                    }
                    if (res) {
                        Utlis.ShowAlertOnMainThread (Language.StringByID (SimpleControl.R.MyInternationalizationString.SuccessfullySynchronizedToTheCloud));
                    } else {
                        Utlis.ShowAlertOnMainThread (Language.StringByID (SimpleControl.R.MyInternationalizationString.FailedToSyncToTheCloud));
                    }
                } catch {
                } finally {
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Hide ();
                    });
                }
            });
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public bool GetFunctionList ()
        {
            var res = false;
            try {
                var revertObj = HttpServerRequest.Current.GetDeviceList ();
                if (revertObj.Code == StateCode.SUCCESS) {
                    var devcieFunctionRes = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieFunctionRes> (revertObj.Data.ToString ());
                    if (devcieFunctionRes != null && devcieFunctionRes.list != null && devcieFunctionRes.list.Count > 0) {
                        CommonConfig.Current.FunctionList = devcieFunctionRes.list;
                    } else {
                        CommonConfig.Current.FunctionList = new List<Function> ();
                    }
                    CommonConfig.Current.Save ();
                    res = true;
                } else {
                    //提示错误
                    IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
                }
            } catch {
            }
            return res;
        }
        #region ■ 上传场景列表___________________________
        /// <summary>
        /// 上传场景列表
@@ -144,7 +210,6 @@
            }
            return res;
        }
        /// <summary>
        /// 获取所有场景列表
@@ -220,25 +285,25 @@
            return res;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="mScene"></param>
        bool UpdateSceneList (List<HDLLinkScene> updateLinkSceneList)
        {
            var res = false;
            try {
                var revertObj = HttpServerRequest.Current.EditScene (updateLinkSceneList);
                if (revertObj.Code == StateCode.SUCCESS) {
                    res = true;
                } else {
                    IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
                }
            } catch {
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="mScene"></param>
        //bool UpdateSceneList (List<HDLLinkScene> updateLinkSceneList)
        //{
        //    var res = false;
        //    try {
        //        var revertObj = HttpServerRequest.Current.EditScene (updateLinkSceneList);
        //        if (revertObj.Code == StateCode.SUCCESS) {
        //            res = true;
        //        } else {
        //            IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
        //        }
        //    } catch {
            }
            return res;
        }
        //    }
        //    return res;
        //}
        /// <summary>
        /// 原生协议Scene 转换成 HDLLinkScene数据格式
@@ -267,13 +332,18 @@
                        var commonNew = Newtonsoft.Json.JsonConvert.DeserializeObject<LightDimming> (jsonInfo);
                        var mSceneFunction = new SceneFunction ();
                        mSceneFunction.sid = function.sid;
                        //1.Brightness
                        //1.on_off
                        var status = new List<SceneFunctionStatus> ();
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.OnOff,
                            value = commonNew.CurrentBrightness > 0 ? "on" : "off",
                        });
                        //2.Brightness
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.Brightness,
                            value = commonNew.CurrentBrightness.ToString(),
                        });
                        //2.Delay
                        //3.Delay
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.Delay,
                            value = (commonNew.DelayTimeHeight * 256 + commonNew.DelayTimeLow).ToString (),
@@ -326,19 +396,24 @@
                        var commonNew = Newtonsoft.Json.JsonConvert.DeserializeObject<LightLogic> (jsonInfo);
                        var mSceneFunction = new SceneFunction ();
                        mSceneFunction.sid = function.sid;
                        //1.Brightness
                        //1.on_off
                        var status = new List<SceneFunctionStatus> ();
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.OnOff,
                            value = commonNew.CurrentBrightness > 0 ? "on" : "off",
                        });
                        //2.Brightness
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.Brightness,
                            value = commonNew.CurrentBrightness.ToString (),
                        });
                        //2.Delay
                        //3.Delay
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.Delay,
                            value = (commonNew.DelayTimeHeigh * 256 + commonNew.DelayTimeLow).ToString (),
                        });
                        //3.rgb
                        //4.rgb
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.RGB,
                            value = commonNew.RStatus + "," + commonNew.GStatus + "," + commonNew.BStatus,
@@ -365,7 +440,7 @@
                        var commonNew = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (jsonInfo);
                        var mSceneFunction = new SceneFunction ();
                        mSceneFunction.sid = function.sid;
                        //1.Brightness
                        //1.OnOff
                        var status = new List<SceneFunctionStatus> ();
                        status.Add (new SceneFunctionStatus () {
                            key = FunctionAttributeKey.OnOff,
@@ -591,8 +666,8 @@
                } else {
                    IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
                }
            } catch {
            } catch(Exception EX) {
                Utlis.WriteLine ("catch: " + EX.ToString());
            }
            return res;
        }