示例#1
0
 public ProjectOperationController(IService.IProjectsService ProjectsService, IService.ITaskListService TaskListService, IService.IUsersService UsersService)
 {
     _ProjectsService = ProjectsService;
     _TaskListService = TaskListService;
     _UsersService    = UsersService;
 }
 public SVNOperationController(IService.ITaskListService TaskListService, IService.IUsersService UsersService)
 {
     _TaskListService = TaskListService;
     _UsersService    = UsersService;
 }
示例#3
0
 public TaskOperationController(IService.ITaskListService TaskListService)
 {
     _TaskListService = TaskListService;
 }
示例#4
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ModelBinders.Binders.DefaultBinder = new PMY.CompilationSystem.Extend.JQueryModelBundler();
            ControllerBuilder.Current.SetControllerFactory(new PMY.CommonUnity.UnityControllerFactory("MyContainer", "Config\\unity.Config"));

            ThreadPool.QueueUserWorkItem((state) => {
                IService.ITaskListService TaskListService = PMY.CommonUnity.UnitySingleton.CreateUnitySingleton("MyContainer", "Config\\unity.Config").GetInstance <PMY.CompilationSystem.IService.ITaskListService>();
                var signalrContext = GlobalHost.ConnectionManager.GetHubContext <PMY.CompilationSystem.SignalR.CMDMessageHub>();
                while (true)
                {
                    //signalrContext.Clients.All.addNewMessageToPage("开始处理");
                    Model.Models.TaskList task = TaskListService.LoadEntities(s => s.TaskStatus == Model.TaskStatus.未处理).FirstOrDefault();
                    if (task != null)
                    {
                        task.TaskStatus = Model.TaskStatus.处理中;
                        TaskListService.EditEntity(task);
                        try
                        {
                            bool isQuitTask = false;
                            //string result = PMY.Common.ExecuteCMDHelper.ExecuteCMD(task.CMDCommand,(s,e)=> {
                            //    if (!string.IsNullOrEmpty(e.Data))
                            //    {
                            //        signalrContext.Clients.All.addNewMessageToPage(e.Data);
                            //        if (e.Data.Contains(" 个错误")&& e.Data!= "0 个错误")
                            //        {
                            //            isQuitTask = true;
                            //        }
                            //    }
                            //});
                            IRemoteService.ICmdService cmdService = PMY.CommonUnity.UnitySingleton.CreateUnitySingleton("MyContainer", "Config\\unity.Config").GetInstance <PMY.CompilationSystem.IRemoteService.ICmdService>();
                            cmdService.ExecuteCMD(task.CMDCommand, (message) =>
                            {
                                if (!string.IsNullOrEmpty(message))
                                {
                                    signalrContext.Clients.All.addNewMessageToPage(message);
                                    if (message.Contains(" 个错误") && message.Trim() != "0 个错误")
                                    {
                                        isQuitTask      = true;
                                        task.TaskStatus = Model.TaskStatus.出现错误;
                                        TaskListService.EditEntity(task);
                                        signalrContext.Clients.All.addNewMessageToPage(task.ActionPath + task.TaskType.ToString() + "出错");
                                        //取消任务
                                        TaskListService.QuitTaskByCreator(task.Creator);
                                        signalrContext.Clients.All.addNewMessageToPage(task.Creator + "的任务已取消");
                                    }
                                }
                                else
                                {
                                    //当回调信息返回所有信息时,最后会返回null

                                    if (message == null && isQuitTask == false)
                                    {
                                        task.TaskStatus = Model.TaskStatus.已完成;
                                        TaskListService.EditEntity(task);
                                        signalrContext.Clients.All.addNewMessageToPage(task.ActionPath + task.TaskType.ToString() + "完成");
                                    }
                                }
                            });
                        }
                        catch (Exception e)
                        {
                            signalrContext.Clients.All.addNewMessageToPage(e.Message);
                            task.TaskStatus = Model.TaskStatus.出现错误;
                            TaskListService.EditEntity(task);
                        }
                    }
                    else
                    {
                        Thread.Sleep(3000);
                    }
                }
            });
        }