예제 #1
0
        public void SetPointActionType(string eventName, string modeName)
        {
            if (PointActionType == PointActionType.None &&
                !string.IsNullOrEmpty(Name))
            {
                if (Name.IndexOf("_in", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    PointActionType = PointActionType.In;
                }
                if (Name.IndexOf("_out", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    PointActionType = PointActionType.Out;
                }
                if (Name.IndexOf("-In", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    PointActionType = PointActionType.In;
                }
                if (Name.IndexOf("-Exit", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    PointActionType = PointActionType.Out;
                }
            }
            if (PointActionType == PointActionType.None &&
                !string.IsNullOrEmpty(eventName))
            {
                PointActionType pointActionType;
                if (Enum.TryParse(eventName, true, out pointActionType))
                {
                    PointActionType = pointActionType;
                }
            }
            if (PointActionType == PointActionType.None &&
                !string.IsNullOrEmpty(modeName))
            {
                switch (modeName)
                {
                case "Entry":
                {
                    PointActionType = PointActionType.In;
                    break;
                }

                case "Exit":
                {
                    PointActionType = PointActionType.Out;
                    break;
                }
                }
            }
        }
예제 #2
0
        public override bool Map(Dictionary <string, object> keyValues)
        {
            var mapId = Map <Guid?>(keyValues, "PointId");

            Id = mapId.Item1;
            var undefined = mapId.Item2;

            var mapName = Map <string>(keyValues, "PointName");

            Name      = mapName.Item1;
            undefined = undefined && mapName.Item2;

            var mapPointActionType = Map <PointActionType>(keyValues, "PointActionType");

            PointActionType = mapPointActionType.Item1;
            undefined       = undefined && mapPointActionType.Item2;

            return(undefined);
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="type"></param>
        /// <param name="nodeID"></param>
        /// <returns>如果NodeID为0则始终不返回NULL</returns>
        public PointAction GetPointAction(string type, int nodeID)
        {
            if (this.ContainsKey(type.ToLower() + "-" + nodeID))
            {
                return(this.GetValue(type.ToLower() + "-" + nodeID));
            }

            if (nodeID > 0)
            {
                PointActionType pointActionType = PointActionManager.GetPointActionType(type);
                NodeItem        item            = pointActionType.NodeItemList.GetValue(nodeID);

                if (item == null)
                {
                    return(null);
                }
                else
                {
                    return(GetPointAction(type, item.ParentID));
                }
            }

            return(new PointAction());
        }
예제 #4
0
        public void ClearExperiesData()
        {
            //return;

            PointActionCollection pointActions = new PointActionCollection();

            foreach (PointAction pointAction in PointActions)
            {
                PointActionType pointActionType = PointActionManager.GetPointActionType(pointAction.Type);

                if (pointActionType == null)
                {
                    continue;
                }

                //检查nodeID
                if (pointActionType.HasNodeList && pointAction.NodeID != 0)
                {
                    bool isExperies = true;
                    foreach (NodeItem item in pointActionType.NodeItemList)
                    {
                        if (item.NodeID == pointAction.NodeID)
                        {
                            isExperies = false;
                            break;
                        }
                    }
                    if (isExperies)
                    {
                        continue;
                    }
                }

                PointAction tempPointAction = new PointAction();
                //检查roleID
                PointActionItemCollection pointActionItems = new PointActionItemCollection();


                foreach (PointActionItem pointActionItem in pointAction.PointActionItems)
                {
                    if (pointActionItem.RoleID == Guid.Empty || AllSettings.Current.RoleSettings.Roles.GetValue(pointActionItem.RoleID) != null)
                    {
                        pointActionItems.Add(pointActionItem);
                    }
                }

                tempPointAction.PointActionItems = pointActionItems;
                tempPointAction.NodeID           = pointAction.NodeID;
                tempPointAction.Type             = pointAction.Type;

                pointActions.Add(tempPointAction);
            }

            PointActionSettings setting = new PointActionSettings();

            setting.PointActions = pointActions;

            try
            {
                SettingManager.SaveSettings(setting);
            }
            catch
            { }
        }
예제 #5
0
 public PointActionTypeListItemParams(PointActionType pointActionType, int index)
 {
     m_PointActionType = pointActionType;
     m_Index           = index;
 }