wxr
2023-09-06 fdbcb1f7463cb766f90bd29dd715485ba9d88524
HDL_ON/UI/UI2/4-PersonalCenter/CombinedDimming/AddGroupControlPage.cs
@@ -441,92 +441,137 @@
                                MainPage.Log($"新增群控转换数据异常:{ex.Message}");
                            }
                        }
                        try
                        var waitPage = new Loading();
                        bodyView.AddChidren(waitPage);
                        waitPage.Start("");
                        new Thread(() =>
                        {
                            groupControl.type = groupControlType.type;
                            groupControl.sid = groupControl.NewGroupControlSid();
                            var pack = Common.ApiUtlis.Ins.HttpRequest.AddGroupControl(new List<GroupControl>() { groupControl });
                            if (pack != null)
                            try
                            {
                                if (pack.Code == StateCode.SUCCESS)
                                groupControl.type = groupControlType.type;
                                groupControl.sid = groupControl.NewGroupControlSid();
                                var pack = ApiUtlis.Ins.HttpRequest.AddGroupControl(new List<GroupControl>() { groupControl });
                                if (pack != null)
                                {
                                    if (pack.Code == StateCode.SUCCESS)
                                    {
                                        try
                                        {
                                            var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString());
                                            if (addTemp != null && addTemp.Count > 0)
                                                groupControl.userDeviceGroupControlId = addTemp[0].userDeviceGroupControlId;
                                            FunctionList.List.groupControls.Add(groupControl);
                                        }
                                        catch (Exception ex)
                                        {
                                            MainPage.Log($"添加群控异常,转译返回数据失败:{ex.Message}");
                                        }
                                        Application.RunOnMainThread(() =>
                                        {
                                            addActon?.Invoke(groupControl);
                                            this.RemoveFromParent();
                                        });
                                    }
                                    else
                                    {
                                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                MainPage.Log($"新增群控异常:{ex.Message}");
                            }
                            finally
                            {
                                Application.RunOnMainThread(() => {
                                    try
                                    {
                                        var addTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString());
                                        if (addTemp != null && addTemp.Count > 0)
                                            groupControl.userDeviceGroupControlId = addTemp[0].userDeviceGroupControlId;
                                        FunctionList.List.groupControls.Add(groupControl);
                                        waitPage.Hide();
                                        waitPage = null;
                                    }
                                    catch (Exception ex)
                                    {
                                        MainPage.Log($"添加群控异常,转译返回数据失败:{ex.Message}");
                                    }
                                    addActon?.Invoke(groupControl);
                                    this.RemoveFromParent();
                                }
                                else
                                {
                                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                                }
                                    catch { }
                                });
                            }
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log($"新增群控异常:{ex.Message}");
                        }
                        })
                        { IsBackground = true }.Start();
                    }
                    else
                    {
                        try
                        var waitPage = new Loading();
                        bodyView.AddChidren(waitPage);
                        waitPage.Start("");
                        new Thread(() =>
                        {
                            //var newEditDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl);
                            //var newEditDataString1 = Newtonsoft.Json.JsonConvert.SerializeObject(groupControlLightList);
                            //var newEditDataString2 = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl.sids);
                            ////没有更新数据则直接退出
                            //if (newEditDataString == editDataString && newEditDataString1 == newEditDataString2)
                            //{
                            //    this.RemoveFromParent();
                            //    return;
                            //}
                            groupControl.sids.Clear();
                            foreach (var light in groupControlLightList)
                            try
                            {
                                try
                                //var newEditDataString = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl);
                                //var newEditDataString1 = Newtonsoft.Json.JsonConvert.SerializeObject(groupControlLightList);
                                //var newEditDataString2 = Newtonsoft.Json.JsonConvert.SerializeObject(this.groupControl.sids);
                                ////没有更新数据则直接退出
                                //if (newEditDataString == editDataString && newEditDataString1 == newEditDataString2)
                                //{
                                //    this.RemoveFromParent();
                                //    return;
                                //}
                                groupControl.sids.Clear();
                                foreach (var light in groupControlLightList)
                                {
                                    var gc = new GroupControlFunction();
                                    gc.sid = light.sid;
                                    gc.spk = light.spk;
                                    groupControl.sids.Add(gc);
                                }
                                catch (Exception ex)
                                {
                                    MainPage.Log($"新增群控转换数据异常:{ex.Message}");
                                }
                            }
                            var pack = Common.ApiUtlis.Ins.HttpRequest.EditGroupControl(new List<GroupControl>() { groupControl });
                            if (pack != null)
                            {
                                if (pack.Code == StateCode.SUCCESS)
                                {
                                    var temp = FunctionList.List.groupControls.Find((obj) => obj.userDeviceGroupControlId == groupControl.userDeviceGroupControlId);
                                    if(temp!= null)
                                    try
                                    {
                                        temp = groupControl;
                                        var gc = new GroupControlFunction();
                                        gc.sid = light.sid;
                                        gc.spk = light.spk;
                                        groupControl.sids.Add(gc);
                                    }
                                    addActon?.Invoke(temp);
                                    this.RemoveFromParent();
                                    catch (Exception ex)
                                    {
                                        MainPage.Log($"新增群控转换数据异常:{ex.Message}");
                                    }
                                }
                                else
                                var pack = ApiUtlis.Ins.HttpRequest.EditGroupControl(new List<GroupControl>() { groupControl });
                                if (pack != null)
                                {
                                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                                    if (pack.Code == StateCode.SUCCESS)
                                    {
                                        var temp = FunctionList.List.groupControls.Find((obj) => obj.userDeviceGroupControlId == groupControl.userDeviceGroupControlId);
                                        if (temp != null)
                                        {
                                            temp = groupControl;
                                        }
                                        Application.RunOnMainThread(() =>
                                        {
                                            addActon?.Invoke(temp);
                                            this.RemoveFromParent();
                                        });
                                    }
                                    else
                                    {
                                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log($"编辑群控异常:{ex.Message}");
                        }
                            catch (Exception ex)
                            {
                                MainPage.Log($"编辑群控异常:{ex.Message}");
                            }
                            finally
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    try
                                    {
                                        waitPage.Hide();
                                        waitPage = null;
                                    }
                                    catch { }
                                });
                            }
                        })
                        { IsBackground = true }.Start();
                    }
                }