public JsonResult Run(int id)
 {
     return(this.Visit(Core.EnumUserRole.Admin, () =>
     {
         try
         {
             tb_task_dal dal = new tb_task_dal();
             tb_command_dal cmdDal = new tb_command_dal();
             using (DbConn PubConn =
                        DbConfig.CreateConn(Config.TaskConnectString))
             {
                 PubConn.Open();
                 tb_task_model task = dal.GetOneTask(PubConn, id);
                 tb_command_model c = new tb_command_model()
                 {
                     command = "",
                     commandcreatetime = DateTime.Now,
                     commandname = EnumTaskCommandName.RunTask.ToString(),
                     taskid = id,
                     nodeid = task.nodeid,
                     commandstate = (int)EnumTaskCommandState.None
                 };
                 cmdDal.Add(PubConn, c);
                 return Json(new { code = 1, msg = "Success" });
             }
         }
         catch (Exception ex)
         {
             return Json(new { code = -1, msg = ex.Message });
         }
     }));
 }
        public JsonResult Uninstall(int id)
        {
            return(this.Visit(Core.EnumUserRole.Admin, () =>
            {
                try
                {
                    tb_command_dal commanddal = new tb_command_dal();
                    tb_task_dal dal = new tb_task_dal();
                    using (DbConn PubConn = DbConfig.CreateConn(Config.TaskConnectString))
                    {
                        PubConn.Open();
                        var taskmodel = dal.Get(PubConn, id);
                        dal.UpdateTaskState(PubConn, id, (int)Core.EnumTaskState.Stop);

                        tb_command_model m = new tb_command_model()
                        {
                            command = "",
                            commandcreatetime = DateTime.Now,
                            commandname = EnumTaskCommandName.UninstallTask.ToString(),
                            taskid = id,
                            nodeid = taskmodel.nodeid,
                            commandstate = (int)EnumTaskCommandState.None
                        };
                        commanddal.Add(PubConn, m);

                        return Json(new { code = 1 });
                    }
                }
                catch (Exception ex)
                {
                    return Json(new { code = -1, msg = ex.Message });
                }
            }));
        }
 public JsonResult ChangeTaskState(int id, int nodeid, int state)
 {
     return(this.Visit(Core.EnumUserRole.Admin, () =>
     {
         tb_command_dal dal = new tb_command_dal();
         tb_task_dal taskDal = new tb_task_dal();
         using (DbConn PubConn = DbConfig.CreateConn(Config.TaskConnectString))
         {
             PubConn.Open();
             if (taskDal.CheckTaskState(PubConn, id) == state)
             {
                 string msg = state == 1 ? "已开启" : "已关闭";
                 return Json(new { code = -1, msg = msg });
             }
             else
             {
                 tb_command_model m = new tb_command_model()
                 {
                     command = "",
                     commandcreatetime = DateTime.Now,
                     commandname = state == (int)EnumTaskCommandName.StartTask ? EnumTaskCommandName.StartTask.ToString() : EnumTaskCommandName.StopTask.ToString(),
                     taskid = id,
                     nodeid = nodeid,
                     commandstate = (int)EnumTaskCommandState.None
                 };
                 dal.Add(PubConn, m);
             }
             return Json(new { code = 1, msg = "Success" });
         }
     }));
 }
        public static bool AddTaskCommand(tb_command_model model)
        {
            tb_command_dal dal = new tb_command_dal();

            using (DbConn PubConn = DbConfig.CreateConn(Config.TaskConnectString))
            {
                PubConn.Open();
                return(dal.Add(PubConn, model));
            }
        }
        /// <summary>
        /// 执行命令
        /// </summary>
        /// <param name="commandInfo"></param>
        public static void Execute(tb_command_model commandInfo)
        {
            string namespacestr = typeof(BaseCommand).Namespace;
            var    obj          = Assembly.GetAssembly(typeof(BaseCommand)).CreateInstance(namespacestr + "." + commandInfo.commandname.ToString() + "Command", true);

            if (obj != null && obj is BaseCommand)
            {
                var command = (obj as BaseCommand);
                command.CommandInfo = commandInfo;
                command.Execute();
            }
        }
Пример #6
0
 public int UpdateCommand(DbConn PubConn, tb_command_model model)
 {
     return(SqlHelper.Visit(ps =>
     {
         ps.Add("command", model.command);
         ps.Add("commandstate", model.commandstate);
         ps.Add("nodeid", model.nodeid);
         ps.Add("commandname", model.commandname);
         ps.Add("id", model.id);
         string sql = "update tb_command set command=@command,commandstate=@commandstate,commandname=@commandname,nodeid=@nodeid where id=@id";
         return PubConn.ExecuteSql(sql, ps.ToParameters());
     }));
 }
 public ActionResult Update(tb_command_model model)
 {
     return(this.Visit(Core.EnumUserRole.Admin, () =>
     {
         tb_command_dal dal = new tb_command_dal();
         using (DbConn PubConn = DbConfig.CreateConn(Config.TaskConnectString))
         {
             PubConn.Open();
             model.commandcreatetime = DateTime.Now;
             dal.UpdateCommand(PubConn, model);
         }
         return RedirectToAction("index");
     }));
 }
Пример #8
0
 public ActionResult Add(tb_command_model model)
 {
     return(this.Visit(EnumUserRole.Admin, () =>
     {
         tb_command_dal dal = new tb_command_dal();
         using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString))
         {
             PubConn.Open();
             model.commandcreatetime = DateTime.Now;
             dal.Add(PubConn, model);
             RedisHelper.SendMessage(new Core.Redis.RedisCommondInfo()
             {
                 CommondType = Core.Redis.EnumCommondType.TaskCommand, NodeId = model.nodeid
             });
         }
         return RedirectToAction("index");
     }));
 }
Пример #9
0
 public JsonResult ChangeMoreTaskState(string poststr)
 {
     return(this.Visit(EnumUserRole.Admin, () =>
     {
         // System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
         List <PostChangeModel> post = new List <PostChangeModel>();
         //   post = jss.Deserialize<List<PostChangeModel>>(poststr);
         post = JsonConvert.DeserializeObject <List <PostChangeModel> >(poststr);
         tb_command_dal dal = new tb_command_dal();
         tb_task_dal taskDal = new tb_task_dal();
         using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString))
         {
             PubConn.Open();
             foreach (PostChangeModel m in post)
             {
                 m.state = m.state == 0 ? 1 : 0;
                 if (taskDal.CheckTaskState(PubConn, m.id) == m.state)
                 {
                     string msg = m.state == 1 ? "已开启" : "已关闭";
                     return Json(new { code = -1, msg = msg });
                 }
                 else
                 {
                     tb_command_model c = new tb_command_model()
                     {
                         command = "",
                         commandcreatetime = DateTime.Now,
                         commandname = m.state == (int)EnumTaskCommandName.StartTask ? EnumTaskCommandName.StartTask.ToString() : EnumTaskCommandName.StopTask.ToString(),
                         taskid = m.id,
                         nodeid = m.nodeid,
                         commandstate = (int)EnumTaskCommandState.None
                     };
                     dal.Add(PubConn, c);
                     RedisHelper.SendMessage(new Core.Redis.RedisCommondInfo()
                     {
                         CommondType = Core.Redis.EnumCommondType.TaskCommand, NodeId = m.nodeid
                     });
                 }
             }
             return Json(new { code = 1, data = post });
         }
     }));
 }
        public virtual tb_command_model CreateModel(DataRow dr)
        {
            var o = new tb_command_model();

            //
            if (dr.Table.Columns.Contains("id"))
            {
                o.id = dr["id"].Toint();
            }
            //命令json
            if (dr.Table.Columns.Contains("command"))
            {
                o.command = dr["command"].Tostring();
            }
            //命令名,参考代码枚举
            if (dr.Table.Columns.Contains("commandname"))
            {
                o.commandname = dr["commandname"].Tostring();
            }
            //命令执行状态,参考代码枚举
            if (dr.Table.Columns.Contains("commandstate"))
            {
                o.commandstate = dr["commandstate"].ToByte();
            }
            //任务id
            if (dr.Table.Columns.Contains("taskid"))
            {
                o.taskid = dr["taskid"].Toint();
            }
            //节点id
            if (dr.Table.Columns.Contains("nodeid"))
            {
                o.nodeid = dr["nodeid"].Toint();
            }
            //命令创建时间
            if (dr.Table.Columns.Contains("commandcreatetime"))
            {
                o.commandcreatetime = dr["commandcreatetime"].ToDateTime();
            }
            return(o);
        }
        public virtual bool Add(DbConn PubConn, tb_command_model model)
        {
            List <ProcedureParameter> Par = new List <ProcedureParameter>()
            {
                //命令json
                new ProcedureParameter("@command", model.command),
                //命令名,参考代码枚举
                new ProcedureParameter("@commandname", model.commandname),
                //命令执行状态,参考代码枚举
                new ProcedureParameter("@commandstate", model.commandstate),
                //任务id
                new ProcedureParameter("@taskid", model.taskid),
                //节点id
                new ProcedureParameter("@nodeid", model.nodeid),
                //命令创建时间
                new ProcedureParameter("@commandcreatetime", model.commandcreatetime)
            };
            int rev = PubConn.ExecuteSql(@"insert into tb_command(command,commandname,commandstate,taskid,nodeid,commandcreatetime)
										   values(@command,@commandname,@commandstate,@taskid,@nodeid,@commandcreatetime)"                                        , Par);

            return(rev == 1);
        }
        public virtual bool Edit(DbConn PubConn, tb_command_model model)
        {
            List <ProcedureParameter> Par = new List <ProcedureParameter>()
            {
                //命令json
                new ProcedureParameter("@command", model.command),
                //命令名,参考代码枚举
                new ProcedureParameter("@commandname", model.commandname),
                //命令执行状态,参考代码枚举
                new ProcedureParameter("@commandstate", model.commandstate),
                //任务id
                new ProcedureParameter("@taskid", model.taskid),
                //节点id
                new ProcedureParameter("@nodeid", model.nodeid),
                //命令创建时间
                new ProcedureParameter("@commandcreatetime", model.commandcreatetime)
            };

            Par.Add(new ProcedureParameter("@id", model.id));

            int rev = PubConn.ExecuteSql("update tb_command set command=@command,commandname=@commandname,commandstate=@commandstate,taskid=@taskid,nodeid=@nodeid,commandcreatetime=@commandcreatetime where id=@id", Par);

            return(rev == 1);
        }