private void AddScanRunningTaskJob()
        {
            Core.Entities.Task scanRunningTask = DbContext.Task.FirstOrDefault(t => t.Name == ScanRunningTaskJobName);
            if (scanRunningTask == null)
            {
                scanRunningTask = new Core.Entities.Task
                {
                    ApplicationName  = "DotnetSpider.Hub",
                    Cron             = $"0/15 * * * *",
                    IsEnabled        = true,
                    IsDeleted        = true,
                    Developers       = "DotnetSpider",
                    Owners           = "DotnetSpider",
                    Arguments        = "",
                    NodeCount        = 1,
                    NodeRunningCount = 0,
                    Name             = ScanRunningTaskJobName,
                    Package          = "0001",
                    NodeType         = "HUB"
                };
                DbContext.Task.Add(scanRunningTask);
                DbContext.SaveChanges();
            }
            var taskId = scanRunningTask.Id.ToString();
            var job    = new SchedulerJobDto
            {
                Id   = taskId,
                Name = scanRunningTask.Name,
                Cron = "0/15 * * * *",
                Url  = string.Format(Configuration.SchedulerCallback, taskId),
                Data = JsonConvert.SerializeObject(new { TaskId = taskId })
            };

            _schedulerAppService.Create(job);
        }
Example #2
0
        private void InitTestData()
        {
            var random = new Random();

            for (int i = 0; i < 100; ++i)
            {
                Core.Entities.Task task = new Core.Entities.Task
                {
                    ApplicationName  = "dotnet",
                    Cron             = $"* * * {i} *",
                    IsEnabled        = true,
                    Developers       = "沈威",
                    Owners           = "刘菲",
                    Arguments        = "-a:1,2",
                    NodeCount        = 1,
                    NodeRunningCount = 0,
                    Analysts         = "刘菲",
                    Name             = $"360指数采集",
                    Version          = "abcd",
                    NodeType         = 1
                };
                _context.Task.Add(task);
            }
            _context.SaveChanges();
        }
        public async Task GetTasksByAttendant_GivenAnUnexistentAttendantId_ShouldReturnNoTasks()
        {
            var taskId      = Guid.NewGuid();
            var attendantId = Guid.NewGuid();
            var taskEntity  = new Core.Entities.Task
            {
                TaskId      = taskId,
                StatusId    = 1,
                PriorityId  = 1,
                Title       = "Test Task",
                Description = "Task Test",
                AttendantId = attendantId,
                AuthorId    = Guid.NewGuid(),
                CreatedDate = DateTime.Now
            };

            List <Core.Entities.Task> tasks = new List <Core.Entities.Task>()
            {
                taskEntity
            };

            taskRepositoryMock.Setup(s => s.GetTasksByAttendant(It.IsAny <Guid>()))
            .Returns(Task.FromResult(new List <Core.Entities.Task>()));

            var taskService = new TaskService(taskRepositoryMock.Object, mapper, converter);
            var response    = await taskService.GetTasksByAttendant(It.IsAny <Guid>());

            Assert.NotNull(response);
            Assert.True(response.Count == 0);
        }
        private void AddUpgradSchedulerJob()
        {
            Core.Entities.Task upgradeScheduler = DbContext.Task.FirstOrDefault(t => t.Name.StartsWith(UpgradeTaskSchedulerTaskName));
            if (upgradeScheduler == null)
            {
                upgradeScheduler = new Core.Entities.Task
                {
                    ApplicationName  = "DotnetSpider.Hub",
                    Cron             = $"* * * * 2999",
                    IsEnabled        = true,
                    IsDeleted        = true,
                    Developers       = "DotnetSpider.Hub",
                    Owners           = "DotnetSpider.Hub",
                    Arguments        = "",
                    NodeCount        = 1,
                    NodeRunningCount = 0,
                    Name             = UpgradeTaskSchedulerTaskName,
                    Version          = "0001",
                    NodeType         = 1
                };
                DbContext.Task.Add(upgradeScheduler);
                DbContext.SaveChanges();
            }
            var taskId = upgradeScheduler.Id.ToString();
            var job    = new SchedulerJobDto
            {
                Id   = taskId,
                Name = upgradeScheduler.Name,
                Cron = "* * * * 2999",
                Url  = string.Format(Configuration.SchedulerCallback, taskId),
                Data = JsonConvert.SerializeObject(new { TaskId = taskId })
            };

            _schedulerAppService.Create(job);
        }
        public void LoadData(IUnitOfWork uow, int taskId, int projectId)
        {
            Tasks = uow.Tasks.GetById(taskId);
            List <EmployeeProject> employees = uow.EmployeeProjects.GetAllByProjectId(projectId);

            Employees      = new SelectList(employees, nameof(EmployeeProject.EmployeeId), nameof(Employee));
            this.Project   = uow.Projects.GetById(projectId);
            this.ProjectId = projectId;
        }
        public async Task <int> Update(Core.Entities.Task entity)
        {
            entity.DateModified = DateTime.Now;
            var sql = "UPDATE Tasks SET Name = @Name, Description = @Description, Status = @Status, DueDate = @DueDate, DateModified = @DateModified WHERE Id = @Id;";

            using (var connection = new SqlConnection(_configuration.GetConnectionString("DefaultConnection")))
            {
                connection.Open();
                var affectedRows = await connection.ExecuteAsync(sql, entity);

                return(affectedRows);
            }
        }
        public async Task <int> Add(Core.Entities.Task entity)
        {
            entity.DateCreated = DateTime.Now;
            var sql = "INSERT INTO Tasks (Name, Description, Status, DueDate, DateCreated) Values (@Name, @Description, @Status, @DueDate, @DateCreated);";

            using (var connection = new SqlConnection(_configuration.GetConnectionString("DefaultConnection")))
            {
                connection.Open();
                var affectedRows = await connection.ExecuteAsync(sql, entity);

                return(affectedRows);
            }
        }
        public async Task <int> Update(Core.Entities.Task entity)
        {
            entity.ModifiedDate = DateTime.Now;
            //Order should be same as columns
            var sql = "Update Task Set TaskName = @TaskName, TaskDescription = @TaskDescription, TaskStatus = @TaskStatus, ModifiedDate = @ModifiedDate Where TaskId=@TaskId";

            using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection")))
            {
                connection.Open();
                var affectedrows = await connection.ExecuteAsync(sql, entity);

                return(affectedrows);
            }
        }
        public async Task <int> Add(Core.Entities.Task entity)
        {
            entity.CreatedDate = DateTime.Now;
            //Order should be same as columns
            var sql = "Insert into Task(TaskName,TaskDescription,TaskStatus,CreatedDate,ModifiedDate) values (@TaskName,@TaskDescription,@TaskStatus,@CreatedDate,@ModifiedDate)";

            using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection")))
            {
                connection.Open();
                var affectedrows = await connection.ExecuteAsync(sql, entity);

                return(affectedrows);
            }
        }
        public async Task EditTask_GivenAnExistentTaskToEdit_ShouldEditTask()
        {
            var taskId   = Guid.NewGuid();
            var personId = Guid.NewGuid();

            var taskEntity = new Core.Entities.Task
            {
                TaskId      = taskId,
                StatusId    = 1,
                PriorityId  = 1,
                Title       = "Test Task",
                Description = "Task Test",
                AttendantId = personId,
                AuthorId    = personId,
                CreatedDate = DateTime.Now
            };
            var editedTask = new EditTaskDto
            {
                TaskId      = taskId,
                AttendantId = personId,
                AuthorId    = personId,
                StatusId    = 1,
                PriorityId  = 1,
                Title       = "Test Task edit",
                Description = "Task Test edit"
            };

            taskRepositoryMock.Setup(s => s.GetSingleByCondition(It.IsAny <Expression <Func <Core.Entities.Task, bool> > >()))
            .Returns(Task.FromResult(taskEntity));

            taskRepositoryMock.Setup(s => s.Update(It.IsAny <Core.Entities.Task>()))
            .Returns(Task.CompletedTask);

            taskRepositoryMock.Setup(s => s.SaveChanges())
            .Returns(Task.FromResult(true));

            var taskService = new TaskService(taskRepositoryMock.Object, mapper, converter);
            var response    = await taskService.EditTask(editedTask);

            taskRepositoryMock.Verify(v => v.SaveChanges(), Times.AtLeastOnce);

            Assert.IsTrue(response);
        }
Example #11
0
        private string PushTask(Core.Entities.Task task)
        {
            var nodes = _nodeAppService.GetAvailable(task.Os, task.NodeType, task.NodeCount);

            if (nodes.Count == 0)
            {
                // TODO LOG
                return(null);
            }

            var identity = Guid.NewGuid().ToString("N");
            var messages = new List <CreateMessageInput>();

            foreach (var node in nodes)
            {
                var arguments = string.Concat(task.Arguments, task.IsSingle ? " --tid:" : " ", task.Id, task.IsSingle ? " -i:" : " ", identity);
                var msg       = new CreateMessageInput
                {
                    TaskId          = task.Id,
                    ApplicationName = task.ApplicationName,
                    Name            = Core.Entities.Message.RunMessageName,
                    NodeId          = node.NodeId,
                    Package         = task.Package,
                    Arguments       = arguments
                };
                messages.Add(msg);
            }
            _messageAppService.Create(messages);

            var taskHistory = new AddTaskHistoryInput
            {
                Identity = identity,
                NodeIds  = string.Join("|", nodes.Select(a => a.NodeId)),
                TaskId   = task.Id
            };

            _taskHistoryAppService.Add(taskHistory);
            return(identity);
        }
Example #12
0
        private void ExitTask(Core.Entities.Task task)
        {
            var runningNodes = _nodeAppService.GetAllOnline();

            var messages = new List <CreateMessageInput>();

            foreach (var status in runningNodes)
            {
                var msg = new CreateMessageInput
                {
                    ApplicationName = "NULL",
                    TaskId          = task.Id,
                    Name            = Core.Entities.Message.CanleMessageName,
                    NodeId          = status.NodeId
                };
                Logger.Warning($"Add CANCLE message: {JsonConvert.SerializeObject(msg)}.");
                messages.Add(msg);
            }
            _messageAppService.Create(messages);

            task.IsRunning        = false;
            task.NodeRunningCount = 0;
        }
        public async Task GetTaskById_GivenAnExistingTaskId_ShouldReturnTask()
        {
            var taskId     = Guid.NewGuid();
            var taskEntity = new Core.Entities.Task
            {
                TaskId      = taskId,
                StatusId    = 1,
                PriorityId  = 1,
                Title       = "Test Task",
                Description = "Task Test",
                AttendantId = Guid.NewGuid(),
                AuthorId    = Guid.NewGuid(),
                CreatedDate = DateTime.Now
            };

            taskRepositoryMock.Setup(s => s.GetSingleByCondition(It.IsAny <Expression <Func <Core.Entities.Task, bool> > >()))
            .Returns(Task.FromResult(taskEntity));

            var taskService = new TaskService(taskRepositoryMock.Object, mapper, converter);
            var response    = await taskService.GetTaskByTaskId(It.IsAny <Guid>());

            Assert.NotNull(response);
            Assert.AreEqual(taskId, response.TaskId);
        }
Example #14
0
 public async Task <IActionResult> Put(int TaskId, Core.Entities.Task Model)
 {
     return(Ok(await Repo.Update(Model)));
 }
Example #15
0
 public async Task <IActionResult> Post(Core.Entities.Task Model)
 {
     return(Ok(await Repo.Add(Model)));
 }
Example #16
0
 public void LoadData(IUnitOfWork uow, int taskId)
 {
     EmployeeTask = uow.EmployeeTasks.GetEmployeeTaskByTaskId(taskId);
     Task         = uow.Tasks.GetById(taskId);
 }