wxr
2023-04-21 666b28d77fc3c1b1dae61c9dfd878c8e683cef8c
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -2,7 +2,7 @@
using Shared;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
@@ -623,7 +623,7 @@
                case SPK.VideoDoorLock:
                    {
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.btnText.TextID=StringId.yonghurenyuan;
                        view1.btnText.TextID=StringId.kaimenrenyuan;
                        view1.btnText.Name = Language.StringByID(StringId.shipinmensuo);
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
@@ -1060,37 +1060,52 @@
        /// <param name="frame">当前界面</param>
        /// <param name="device">当前设备</param>
        /// <param name="btnState">旧状态</param>
        public void FaceAction(FrameLayout frame, Entity.Function device,Button btnState) {
        public void FaceAction(FrameLayout frame, Entity.Function device, Button btnState)
        {
            selectedState = device.spk + "_";
            Loading loading = new Loading();
            frame.AddChidren(loading);
            loading.Start();
            System.Threading.Tasks.Task.Run(() =>
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    var faceIDList = Send.Current.GetListHomeFace(device.deviceId, true);
                    List<string> faceNameList = new List<string>();
                    for (int i = 0; i < faceIDList.Count; i++)
                    {
                        var face = faceIDList[i];
                        faceNameList.Add(face.userName);
                    }
                    Application.RunOnMainThread(() =>
                    var faceIdList = Send.Current.GetListHomeFace(device.deviceId, true);
                    CommonMethod.Current.MainThread(() =>
                    {
                        loading.Hide();
                        string stateValue=btnState.Tag==null?"":btnState.Tag.ToString();
                        PublicInterface publicInterface = new PublicInterface();
                        publicInterface.FrameOrVv(this, faceNameList, new List<string> { btnState.Text }, device.name, (index) =>
                        {
                            var face = faceIDList[index];
                            //界面显示选中值
                            btnState.Text = face.userName;
                            //数据封装
                            AddDictionary("open_type", "1", "integer");
                            AddDictionary("user_id", face.userId, "string");
                        publicInterface.MultiSelectShow(this, faceIdList, device.name, stateValue, (indexeList) =>
                     {
                         if (indexeList.Count > 0)
                         {
                             dicSateteList.Clear();
                             string s = string.Empty;
                             string tag = string.Empty;
                             //数据封装
                             AddDictionary("open_type", "1", "integer");
                             for (int indexe = 0; indexe < indexeList.Count; indexe++)
                             {
                                 if (indexe > faceIdList.Count)
                                 {
                                     continue;
                                 }
                                 var face = faceIdList[indexe];
                                 AddDictionary("user_id", face.userId, "string");
                                 s += face.userName;
                                 s += ",";
                                 tag += face.userId;
                                 tag += "_";
                             }
                             //界面显示选中值
                             btnState.Text = s;
                             btnState.Tag = tag;
                         }
                        }, false);
                     });
                    });
                }
                catch { }
@@ -1118,30 +1133,45 @@
            Loading loading = new Loading();
            frame.AddChidren(loading);
            loading.Start();
            System.Threading.Tasks.Task.Run(() =>
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    var userList =FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.GetVideoDoorLockUserListInfo(device);
                    List<string> userNameList = new List<string>();
                    for (int i = 0; i < userList.Count; i++)
                    var faceIdList = Send.Current.GetVideoDoorLockUserListInfo(device);
                    CommonMethod.Current.MainThread(() =>
                    {
                        var user = userList[i];
                        userNameList.Add(user.extUserName);
                    }
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                        PublicInterface publicInterface = new PublicInterface();//用户界面
                        publicInterface.FrameOrVv(this, userNameList, new List<string> { btnState.Text }, device.name, (index) =>
                        {
                            var userId = userNameList[index];
                            //界面显示选中值
                            btnState.Text = userId;
                            //数据封装
                            AddDictionary("open_user", userId, "string");
                        }, false);
                        loading.Hide();
                        string stateValue = btnState.Text == null ? "" : btnState.Text.ToString();
                        PublicInterface publicInterface = new PublicInterface();
                        publicInterface.MultiSelectShow(this, faceIdList, device.name, stateValue, (indexeList) =>
                        {
                            if (indexeList.Count > 0)
                            {
                                dicSateteList.Clear();
                                string s = string.Empty;
                                string tag = string.Empty;
                                for (int indexe = 0; indexe < indexeList.Count; indexe++)
                                {
                                    if (indexe > faceIdList.Count)
                                    {
                                        continue;
                                    }
                                    var face = faceIdList[indexe];
                                    //数据封装<高胜说萤石那边是推送用户名>
                                    AddDictionary("open_user", face.userName, "string");
                                    s += face.userName;
                                    s += ",";
                                    tag += face.userId;
                                    tag += "_";
                                }
                                //界面显示选中值
                                btnState.Text = s;
                                btnState.Tag = tag;
                            }
                        });
                    });
                }
@@ -1267,16 +1297,45 @@
                var dic = dictionaryB[i];
                string key = dic["key"];
                string comparatorValue = dic["comparator"];
                string value = dic["value"];
                if (dictionaryA["key"] == key && dictionaryA["comparator"] == comparatorValue)
                {
                    //判断是否存在
                    valueInt = i;
                    break;
                    if (this.checkSpk())
                    {
                        //有些设备需要增加这个判断
                        if (dictionaryA["value"] == value)
                        {
                            //判断是否存在
                            valueInt = i;
                            break;
                        }
                    }
                    else
                    {
                        //判断是否存在
                        valueInt = i;
                        break;
                    }
                }
            }
            return valueInt;
        }
        /// <summary>
        /// 检查是否支持
        /// </summary>
        /// <returns></returns>
        private bool checkSpk()
        {
            if (this.function.spk == SPK.VideoDoorLock ||
               this.function.spk == SPK.doorgate
                )
            {
                return true;
            }
            return false;
        }
        /// <summary>
        /// 判断dictionaryB是否完整包含另一个dictionaryA
        /// </summary>
        /// <param name="dictionaryA"></param>