コード例 #1
0
 private CheckResult GetCheckResult(int minutesDelta, CheckResultType type)
 {
     return(new CheckResult
     {
         Check = new Check
         {
             Name = CheckName
         },
         CheckBatch = new CheckBatch(),
         Type = type,
         Time = TimeUtilities.DateTimeOffsetToLong(UtcNow.AddMinutes(minutesDelta))
     });
 }
コード例 #2
0
        private void InitializeNewAction(IEnumerable <ReadTagActionItem> readTags,
                                         IEnumerable <WriteTagActionItem> writeTags, IEnumerable <CheckTagActionItem> checkTags,
                                         CheckResultType checkResultType)
        {
            foreach (var readTagActionItem in readTags)
            {
                _readTags.Add(readTagActionItem);
            }

            foreach (var writeTagActionItem in writeTags)
            {
                _writeTags.Add(writeTagActionItem);
            }
            foreach (var checkTagActionItem in checkTags)
            {
                _checkTags.Add(checkTagActionItem);
            }

            _checkResultType = checkResultType;
        }
コード例 #3
0
        /// <summary>
        /// 解析cehck接口返回的结果
        /// </summary>
        /// <param name="response"></param>
        /// <returns></returns>
        static CheckResultType parseRet(string response)
        {
            CheckResultType returnResult = CheckResultType.Success;

            if (String.IsNullOrEmpty(response))
            {
                returnResult = CheckResultType.Error;
                return(returnResult);
            }
            try
            {
                JObject ret  = JObject.Parse(response);
                int     code = ret.GetValue("code").ToObject <Int32>();
                String  msg  = ret.GetValue("msg").ToObject <String>();
                if (code == 200)
                {
                    JObject array      = (JObject)ret.SelectToken("result");
                    int     actioncode = array.GetValue("action").ToObject <Int32>();

                    returnResult = (CheckResultType)actioncode;
                }
                else
                {
                    Console.WriteLine("error: {0}", msg);
                    returnResult = (CheckResultType)code;
                }
            }
            catch (Exception e)
            {
                if (e.Source != null)
                {
                    Console.WriteLine("IOException source: {0}", e.Source);
                }
                returnResult = CheckResultType.Error;
            }
            return(returnResult);
        }
コード例 #4
0
        //<Action Type="TagsAction" Name="Action1" CheckResultType="AllTag">
        //    <ActionItem Type="WriteTag" Tag="Tag1" ConstValue="true" />
        //    <ActionItem Type="CheckTag" Tag="Tag2" ConstValue="true" />
        //    <ActionItem Type="CheckTag" Tag="Tag3" ConstValue="true" />
        //</Action>
        public override bool LoadFromConfig(XmlNode node)
        {
            try
            {
                if (!base.LoadFromConfig(node))
                {
                    return(false);
                }

                // 增加返回值检查类型功能 Dongmin 20170804
                var level0Item = (XmlElement)node;
                if (level0Item.HasAttribute("CheckResultType"))
                {
                    var strCheckResultType = level0Item.GetAttribute("CheckResultType");
                    if (strCheckResultType.ToLower() == "anytag")
                    {
                        _checkResultType = CheckResultType.AnyTag;
                    }
                }

                foreach (XmlNode level1Node in node)
                {
                    // level1 --  "Parameter", "StepAction"
                    if (level1Node.NodeType == XmlNodeType.Comment)
                    {
                        continue;
                    }

                    var level1Item = (XmlElement)level1Node;

                    if (string.Equals(level1Item.Name, "ActionItem", StringComparison.CurrentCultureIgnoreCase))
                    {
                        // 创建ActionItem
                        var actionItemType = level1Item.GetAttribute("Type");

                        if (string.Equals(actionItemType, "ReadTag", StringComparison.CurrentCultureIgnoreCase))
                        {
                            var actionItem = new ReadTagActionItem();
                            if (!actionItem.LoadFromConfig(level1Item, this))
                            {
                                return(false);
                            }
                            if (actionItem.Tag.AccessType == TagAccessType.Write)
                            {
                                Log.Error($"装载机器TagsAction:{Name},Machine:[{OwnerMachine.ResourceName}]装载Tag:{actionItem.Tag.TagName},Tag访问类型为[只写],不能用作ReadTag。");
                            }
                            _readTags.Add(actionItem);
                        }
                        else if (string.Equals(actionItemType, "WriteTag", StringComparison.CurrentCultureIgnoreCase))
                        {
                            var actionItem = new WriteTagActionItem();
                            if (!actionItem.LoadFromConfig(level1Item, this))
                            {
                                return(false);
                            }
                            _writeTags.Add(actionItem);
                        }
                        else if (string.Equals(actionItemType, "CheckTag", StringComparison.CurrentCultureIgnoreCase))
                        {
                            var actionItem = new CheckTagActionItem();
                            if (!actionItem.LoadFromConfig(level1Item, this))
                            {
                                return(false);
                            }
                            _checkTags.Add(actionItem);
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                return(false);
            }
        }
コード例 #5
0
 public CheckResult AddCheckResult(CheckResultType type, int minutesDelta)
 {
     return(AddCheckResult(GetCheckResult(minutesDelta, type)));
 }