Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function task_1(data) {
- class Task {
- constructor(id, title, status, points) {
- this.id = id
- this.title = title
- this.status = status
- this.points = points
- }
- }
- let board_num = Number(data.shift())
- let task_board = {}
- for (let i = 0; i < board_num; i++) {
- let [name, id, title, status, points] = data.shift().split(':')
- if (!task_board.hasOwnProperty(name)) {
- let new_task = new Task(id, title, status, points)
- task_board[name] = [new_task]
- } else {
- let new_task = new Task(id, title, status, points)
- task_board[name].push(new_task)
- }
- }
- for (let j = 0; j < data.length; j++) {
- let command_data = data[j].split(':')
- let command = command_data[0]
- if (command === 'Add New') {
- let hero_name = command_data[1]
- let task_id = command_data[2]
- let task_title = command_data[3]
- let task_status = command_data[4]
- let task_points = command_data[5]
- if (task_board.hasOwnProperty(hero_name)) {
- let added_task = new Task(task_id, task_title, task_status, task_points)
- task_board[hero_name].push(added_task)
- } else {
- console.log(`Assignee ${hero_name} does not exist on the board!`)
- }
- }
- else if (command === 'Change Status') {
- let current_name = command_data[1]
- let current_id = command_data[2]
- let new_status = command_data[3]
- if (task_board.hasOwnProperty(current_name)) {
- let change_status_task = get_current_task(task_board[current_name], current_id)
- if (change_status_task) {
- change_status_task.status = new_status
- } else {
- console.log(`Task with ID ${current_id} does not exist for ${current_name}!`)
- }
- } else {
- console.log(`Assignee ${current_name} does not exist on the board!`)
- }
- }
- else if (command === 'Remove Task') {
- let assignee_name = command_data[1]
- let index = Number(command_data[2])
- if (task_board.hasOwnProperty(assignee_name)) {
- if (0 <= index && index < task_board[assignee_name].length) {
- task_board[assignee_name].splice(index, 1)
- } else {
- console.log("Index is out of range!")
- }
- } else {
- console.log(`Assignee ${assignee_name} does not exist on the board!`)
- }
- }
- }
- let to_do = 0
- let progress = 0
- let core_review = 0
- let done = 0
- let sum = 0
- let task_data = Object.values(task_board)
- for (const items of task_data) {
- for (const item of items) {
- if (item.status === 'ToDo') {
- to_do += Number(item.points)
- sum += Number(item.points)
- }
- else if (item.status === 'In Progress') {
- progress += Number(item.points)
- sum += Number(item.points)
- }
- else if (item.status === 'Code Review') {
- core_review += Number(item.points)
- sum += Number(item.points)
- }
- else if (item.status === 'Done') {
- done += Number(item.points)
- }
- }
- }
- console.log(`ToDo: ${to_do}pts`)
- console.log(`In Progress: ${progress}pts`)
- console.log(`Code Review: ${core_review}pts`)
- console.log(`Done Points: ${done}pts`)
- if (done >= sum) {
- console.log('Sprint was successful!')
- } else {
- console.log('Sprint was unsuccessful...')
- }
- function get_current_task(task_list, task_id) {
- for (const task of task_list) {
- if (task.id === task_id) {
- return task
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement