コード例 #1
0
        /// <summary>
        /// 同步方法调用
        /// </summary>
        /// <param name="taskModel">操作实体类</param>
        /// <returns>返回结果</returns>
        public Object ExecuteCmd(TaskModelBase taskModel)
        {
            object backObj = null;

            try
            {
                using (System.Threading.Tasks.Task <Object> result = System.Threading.Tasks.Task.Run <object>(() =>
                {
                    IOperator _operator = null;

                    try
                    {
                        _operator = operatorFactory.CreateOperator(taskModel.operatorName);
                        _operator.taskModel = taskModel;
                    }
                    catch
                    {
                    }
                    return(_operator.doOperator());
                }))
                {
                    backObj = result.Result;
                };
            }
            catch (Exception ex)
            {
                iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Error.ToString(), "iCMS.WG.Agent.SyncTools.ExecuteCmd 执行上层命令失败,异常:" + ex.Message + "\r\n详细:" + ex.StackTrace.ToString());
            }

            return(backObj);
        }
コード例 #2
0
        public static void insertInDB(TaskModelBase document)
        {
            MongoClient    client     = getClient();
            IMongoDatabase db         = client.GetDatabase(Resources.Constants.ToDoDBName);
            var            collection = db.GetCollection <TaskModelBase>(Resources.Constants.ToDoTaskTableName);

            collection.InsertOne(document);
        }
コード例 #3
0
        public static void updateDocument(TaskModelBase document, string id)
        {
            var filter = Builders <TaskModelBase> .Filter.Eq("_id", new ObjectId(id));

            MongoClient    client     = getClient();
            IMongoDatabase db         = client.GetDatabase(Resources.Constants.ToDoDBName);
            var            collection = db.GetCollection <TaskModelBase>(Resources.Constants.ToDoTaskTableName);

            collection.ReplaceOne(filter, document);
        }
コード例 #4
0
        public IHttpActionResult Post(TaskModelBase model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data."));
            }

            model.Date = DateTime.SpecifyKind(model.Date, DateTimeKind.Utc);

            ToDoMongoCRUD.insertInDB(model);
            return(Ok());
        }
コード例 #5
0
        /// <summary>
        /// 获取触感器信息
        /// </summary>
        public void GetWSInfo()
        {
            TaskModelBase param  = new TaskModelBase();
            UploadResult  result = new UploadResult();

            try
            {
                param.operatorName = "RefreshWSStatesOper";
                if (iCMS.WG.AgentServer.Common.syncTools == null)
                {
                    Common.Init();
                }
                Common.asyncTools.AddCmd(param);
            }
            catch
            {
            }
        }
コード例 #6
0
        /// <summary>
        /// 用在异步方法内调用
        /// </summary>
        /// <param name="taskModel">操作实体类</param>
        /// <returns>返回结果</returns>
        public static async Task <Object> AsyncExecuteCmd(TaskModelBase taskModel)
        {
            Object backObj = null;

            IOperator _operator = null;

            try
            {
                _operator           = operatorFactory.CreateOperator(taskModel.operatorName);
                _operator.taskModel = taskModel;
                backObj             = _operator.doOperator();
            }
            catch (Exception ex)
            {
                iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Error.ToString(), "iCMS.WG.Agent.SyncTools.ExecuteCmd 执行上层命令失败,异常:" + ex.Message + "\r\n详细:" + ex.StackTrace.ToString());
            }
            return(backObj);
        }
コード例 #7
0
        /// <summary>
        ///重启Agent
        /// </summary>
        public void ReSetAgent()
        {
            TaskModelBase param  = new TaskModelBase();
            UploadResult  result = new UploadResult();

            try
            {
                param.operatorName = "ReSetAgentOper";
                if (iCMS.WG.AgentServer.Common.syncTools == null)
                {
                    Common.Init();
                }
                Common.asyncTools.AddCmd(param);
                result.Result = 0;
            }
            catch
            {
                result.Result = 1;
                result.Reason = "发生错误无法受理请求";
            }
        }
コード例 #8
0
        private void ExecuteCmd(TaskModelBase taskmMdel)
        {
            IOperator _operator = null;

            try
            {
                _operator = operatorFactory.CreateOperator(taskmMdel.operatorName);
                if (_operator != null)
                {
                    _operator.taskModel = taskmMdel;
                    _operator.doOperator();
                }
            }
            catch (Exception ex)
            {
                iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Error.ToString(), "iCMS.WG.Agent.AsyncTools.ExecuteCmd 执行上层命令失败,异常:" + ex.Message + "\r\n详细:" + ex.StackTrace.ToString());
                iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Error.ToString(), "详细执行对象Json::" + iCMS.WG.Agent.ComFunction.GetJson(taskmMdel));
            }
            finally
            {
                _hasNew.Set();
            }
        }
コード例 #9
0
 /// <summary>
 /// Agent响应上层应用命令
 /// </summary>
 /// <param name="taskModel">命令实体类</param>
 public void AddCmd(TaskModelBase taskModel)
 {
     TaskList.Enqueue(taskModel);
     _hasNew.Set();
 }