陈嘉乐
2020-05-19 0e0584b87851c56745bf73b1a961b80613dd0721
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -80,7 +80,7 @@
                    {
                        //进来更新一次值
                        logicId = logic.LogicId;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"])/3600;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
                    }
@@ -98,6 +98,7 @@
            };
            middle.AddChidren(fLayout);
            #endregion
            #region 常开自动化
            ///第三块第一级父控件
            listLogicFl = new FrameLayout
@@ -303,19 +304,21 @@
                    }
                };
                ///显示失效设置时间文本控件
                var timeTextBtn = new Button
                {
                    Y = Application.GetRealHeight(127 + 69),
                    X = Application.GetRealWidth(86),//125
                    Width = Application.GetRealWidth(907),//634 + 200
                    Height = Application.GetRealHeight(60),
                    TextSize = 15,
                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                };
                if (logicId != 0)
                {
                    ///显示失效设置时间文本控件
                    var timeTextBtn = new Button
                    {
                        Y = Application.GetRealHeight(127 + 69),
                        X = Application.GetRealWidth(80),//125
                        Width = Application.GetRealWidth(907+12),//634 + 200
                        Height = Application.GetRealHeight(60),
                        TextSize = 15,
                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                    };
                    openModeFl.AddChidren(timeTextBtn);
                    string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                    string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                    string text3 = Language.StringByID(MyInternationalizationString.monthSone);
@@ -324,10 +327,10 @@
                    string text6 = Language.StringByID(MyInternationalizationString.executeSone);
                    string year = "";
                    string month = "";
                    int days =0;
                    int hour =0;
                    int minute =0;
                    int days = 0;
                    int hour = 0;
                    int minute = 0;
                    if (_if)
                    {
                        ///第一次进来读取网关时间;
@@ -341,6 +344,8 @@
                    }
                    else
                    {
                        ///在当前界面编辑显示系统时间(不能每一次编辑都去网关拿数据)                         year = DateTime.Now.Year.ToString();//那一年
                        month = DateTime.Now.Month.ToString();//那一月
                        var d = DateTime.Now.ToString("dd");//那一天
@@ -405,66 +410,66 @@
                };
                modeFl.AddChidren(clickBtn);
                clickBtn.MouseUpEventHandler += (sender, e) =>
                 {
                {
                     LogicView.TipView.ShowConfrimTip(() =>
                     {///再次确认
                         LogicView.TipView.ShowInputTip(true, async (str) =>
                          {///确认发送命令
                              CommonPage.Loading.Start();
                              try
                              {
                                  ///xm
                                  var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
                                  if (!result)
                                  {
                                      LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
                                      return;
                                  }
                                  else
                                  {
                                      ///因为有常开模式下才可以创建失效逻辑;
                                      SkipView.GetLogicAll(Send.CurrentDoorLock);//删除之前所有失效逻辑
                                      var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                      if (addResult == 0)
                                      {
                                          ///可欣说如果常开模式开,创建自动化失败,那么将要发一条常开模式关闭命令;
                                          UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                                          ///提示失败
                                          LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
                                          return;
                                      }
                                      else
                                      {
                                          logicId = addResult;
                                          timeValue = int.Parse(str);
                                          Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                          _if = false;
                                          ModeView();
                                          ///添加APP开启常开模式的历史记录
                                          UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
                                      }
                    LogicView.TipView.ShowConfrimTip(() =>
                    {///再次确认
                        LogicView.TipView.ShowInputTip(true, async (str) =>
                        {///确认发送命令
                            CommonPage.Loading.Start();
                            try
                            {
                                ///xm
                                var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
                                if (!result)
                                {
                                    LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
                                    return;
                                }
                                else
                                {
                                    ///因为有常开模式下才可以创建失效逻辑;
                                    SkipView.GetLogicAll(Send.CurrentDoorLock);//删除之前所有失效逻辑
                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                    if (addResult == 0)
                                    {
                                        ///可欣说如果常开模式开,创建自动化失败,那么将要发一条常开模式关闭命令;
                                        UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                                        ///提示失败
                                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
                                        return;
                                    }
                                    else
                                    {
                                        logicId = addResult;
                                        timeValue = int.Parse(str);
                                        Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                        _if = false;
                                        ModeView();
                                        ///添加APP开启常开模式的历史记录
                                        UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
                                    }
                                  }
                              }
                              catch
                              {
                                }
                            }
                            catch
                            {
                              }
                              finally
                              {
                                  Application.RunOnMainThread(() =>
                                  {
                                      CommonPage.Loading.Hide();
                            }
                            finally
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    CommonPage.Loading.Hide();
                                  });
                              }
                          });
                                });
                            }
                        });
                     });
                    });
                 };
                };
            }
            listLogicFl.Y = fLayout.Bottom;
            listLogicFl.X = Application.GetRealWidth(58);
@@ -472,7 +477,7 @@
            listLogicFl.Width = Application.GetRealWidth(1022);
            listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
            verticalRefresh.Y = Application.GetRealHeight(187);
            verticalRefresh.Y = Application.GetRealHeight(187);
            verticalRefresh.X = Application.GetRealWidth(46);
            verticalRefresh.Height = listLogicFl.Height - Application.GetRealHeight(187);//动态改动上下滑动view高度;
            verticalRefresh.Width = listLogicFl.Width - Application.GetRealWidth(46);
@@ -483,10 +488,10 @@
        /// <param name="yes"></param>
        private async void Read(bool yes)
        {
            if (yes)
            {
                CommonPage.Loading.Start();
            }
            //if (yes)
            // {
            CommonPage.Loading.Start();
            // }
            try
            {
                if (Common.Logic.SoneLogicList.Count == 0)
@@ -514,13 +519,20 @@
            {
                var dd = e.Message;
            }
            //自动化
            RefreshView();
            if (yes)
            finally
            {
                CommonPage.Loading.Hide();
                Application.RunOnMainThread(() =>
                {
                    // if (yes)
                    // {
                    CommonPage.Loading.Hide();
                    // }
                    //自动化
                    RefreshView();
                });
            }
        }
        /// <summary>
        /// 记录左滑状态
@@ -697,9 +709,7 @@
            }
        }
        /// <summary>
        /// 将UNIX时间戳转换成系统时间(精确到秒)
        /// <returns></returns>
        public DateTime GetLocalTime(int unixTimeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));