Exemple #1
0
        public object GetDetailWidthBinding(int taskId)
        {
            //得到所有绑定 并确定主节点情况
            var taskandbinds = TaskBll.ToRightTaskNodes(taskId, null, false);

            using (RLib.DB.DbConn dbconn = Pub.GetConn())
            {
                var nodeldal = new DAL.NodeDal();
                foreach (var b in taskandbinds.Item2)
                {
                    b.Node = nodeldal.Detail(dbconn, b.NodeId);
                }
            }
            return(taskandbinds);
        }
Exemple #2
0
        public bool StartTask(int taskId, List <int> nodeids)
        {
            var taskandbinds = TaskBll.ToRightTaskNodes(taskId, nodeids, true);

            if (taskandbinds.Item2.Count() == 0)
            {
                throw new MException("没有节点,无法启动!");
            }
            if (taskandbinds.Item1.CurrVersionId == 0)
            {
                throw new MException("请上传任务版本文件并设置当前运行版本!");
            }
            using (RLib.DB.DbConn dbconn = Pub.GetConn())
            {
                dbconn.BeginTransaction();
                try
                {
                    var cmdmodel = new Model.Cmd()
                    {
                        CmdArgs = RLib.Utils.DataSerialize.SerializeJson(new Ruanal.Core.CmdTaskArg()
                        {
                            TaskId = taskId
                        }),
                        CmdState = 0,
                        CmdType  = Ruanal.Core.ConfigConst.CmdType_StartTask,
                        NodeId   = 0
                    };
                    List <string> clientIds = new List <string>();
                    foreach (var a in taskandbinds.Item2)
                    {
                        cmdmodel.NodeId = a.NodeId;
                        cmddal.AddCmd(dbconn, cmdmodel);
                        taskdal.UpdateBindLocalState(dbconn, a.BindId, 1);

                        clientIds.Add(a.Node.ClientId);
                    }
                    dbconn.Commit();
                    NotifyNewCmd(clientIds);
                    return(true);
                }
                catch (Exception ex)
                {
                    dbconn.Rollback();
                    throw ex;
                }
            }
        }