Advertisement
Silviya7

1Assignee_2

Jul 11th, 2024 (edited)
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input){
  2.  
  3.     let countassignee= Number(input.shift());
  4.  
  5.     let Allassignees={};// associative array
  6.    
  7.     for (let i = 0; i < countassignee; i++) {
  8.         const[assignee,taskId,title,status,estimatedPoints1]=(input.shift()).split(':');
  9.         let estimatedPoints=Number(estimatedPoints1);
  10.  
  11.       if(Allassignees[assignee]){
  12.         Allassignees[assignee].alltasks.push({taskId,title,status,estimatedPoints});
  13.       }
  14.       else{
  15.         Allassignees[assignee]={alltasks:[{taskId,title,status,estimatedPoints}]};
  16.       }
  17.  
  18.     }
  19.  
  20.  
  21.    // let Cmd= input.shift();
  22.  
  23.    for (const currentcmd of input) {
  24.    
  25.    
  26.         ArrCmd= (currentcmd).split(':');
  27.  
  28.     let commandCmd=ArrCmd[0];
  29.     let assignee= ArrCmd[1];
  30.     let taskid=ArrCmd[2];
  31.  
  32.     switch (commandCmd) {
  33.         case 'Add New':
  34.             let title=ArrCmd[3];
  35.             let status=ArrCmd[4];
  36.             let estimatedPoints=Number(ArrCmd[5]);
  37.  
  38.             if(!Allassignees[assignee]){
  39.                 console.log(`Assignee ${assignee} does not exist on the board!`)
  40.             }
  41.             else{
  42.                 Allassignees[assignee].alltasks.push({taskid,title,status,estimatedPoints:estimatedPoints});
  43.             }
  44.             break;
  45.         case 'Change Status':
  46.             let newstatus=ArrCmd[3];
  47.             if(Allassignees[assignee]){
  48.  
  49.                 let currenttask= Allassignees[assignee].alltasks.find(t=> t.taskId==taskid);
  50.                 if(currenttask== null){
  51.               console.log(`Task with ID ${taskid} does not exist for ${assignee}!`)
  52.                 }
  53.                 else{
  54.                     currenttask.status = newstatus;
  55.                 }
  56.                
  57.                    
  58.             }
  59.             else{
  60.                console.log(`Assignee ${assignee} does not exist on the board!`)
  61.             }
  62.            
  63.             break;
  64.    
  65.             case 'Remove Task':
  66.                 let index=Number(taskid);
  67.                
  68.                 if(!Allassignees[assignee]){
  69.                     console.log(`Assignee ${assignee} does not exist on the board!`)
  70.                 }
  71.                 else{
  72.               let counttasks=Allassignees[assignee].alltasks.length;
  73.               if(index <0 || index >=counttasks){
  74.                         console.log(`Index is out of range!`);
  75.               }
  76.               else{
  77.              
  78.               Allassignees[assignee].alltasks.splice(index,1);
  79.               }
  80.                 }
  81.                  break;
  82.             }
  83.         }
  84.  
  85.         let FinalTasks={};
  86.          FinalTasks['ToDo']= 0;
  87.          FinalTasks['In Progress']= 0;
  88.          FinalTasks['Code Review']= 0;
  89.          FinalTasks['Done Points']= 0;
  90.  
  91.  
  92.  
  93.         for (const assignee in Allassignees) {
  94.             for (const task of Allassignees[assignee].alltasks) {
  95.                 if(task.status=='ToDo'){
  96.                     FinalTasks['ToDo'] += task.estimatedPoints;
  97.                 }
  98.                 else if(task.status=='In Progress'){
  99.                     FinalTasks['In Progress'] += task.estimatedPoints;
  100.                 }
  101.                 else if(task.status=='Code Review'){
  102.                     FinalTasks['Code Review'] += task.estimatedPoints;
  103.                 }
  104.                 else if(task.status=='Done'){
  105.                     FinalTasks['Done Points'] +=task.estimatedPoints;
  106.                 }
  107.                
  108.             }
  109.          
  110.         }
  111.  
  112.  
  113.         let countDone=0;
  114.         let countothers=0;      
  115.        
  116.         let AllEntries=Object.entries(FinalTasks);
  117.  
  118.         for (const key of AllEntries) {
  119.             console.log(`${key[0]}: ${key[1]}pts`);
  120.  
  121.             switch(key[0]){
  122.                 case 'ToDo':
  123.                
  124.                 countothers += Number(key[1]);
  125.                 break;
  126.                 case 'In Progress':
  127.                
  128.                 countothers += Number(key[1]);
  129.                 break;
  130.                 case 'Code Review':
  131.              
  132.                 countothers += Number(key[1]);
  133.                 break;
  134.                 case 'Done Points':
  135.                     countDone += Number(key[1]);
  136.                    
  137.                 break;
  138.         }
  139.      
  140.     }
  141.  
  142.  
  143.  
  144.     if(countDone >= countothers){
  145.         console.log(`Sprint was successful!`);
  146.     }
  147. else{
  148. console.log(`Sprint was unsuccessful...`)
  149. }
  150. }
  151.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement