/// <summary> /// This function is responsible for removing a task from this column /// </summary> /// <param name="task"> Task to be removed from this column </param> public void RemoveTask(Task task, int columnNumber, string boardName, string email) { this.tasksList.Remove(tasksList.Find(x => x.GetTitle().Equals(task.GetTitle()))); // Update data this.dataBase.RemoveTask(email, boardName, Convert.ToString(task.GetCreationTime()), Convert.ToString(task.GetDueDate()), this.colName, task.GetTitle(), task.GetDescription()); }
/// <summary> /// This function is responsible for changing a state of a given Task /// </summary> /// <param name="task"> Task instance to be moved </param> public bool ChangeState(Task task, string boardName, string email) { string currCol = task.GetState(); // string that represents current state or column, for example : "backlog" // Get index of current column int currentIndex = this.columns.FirstOrDefault(x => ((Column)x.Value).GetColumnName().Equals(currCol)).Key; Column currentCol = this.columns[currentIndex]; if (!(currentIndex == this.columns.Keys.Last())) // Checking whether the state changing occurs in the next column { int movingIndex = currentIndex + 1; Column movingCol = this.columns[movingIndex]; if ((movingCol.GetIsLimited() && movingCol.GetTasks().Count < movingCol.GetLim()) || (!movingCol.GetIsLimited())) { task.SetState(movingCol.GetColumnName()); movingCol.AddTaskToColumn(task, movingIndex, boardName, email); currentCol.RemoveTask(task, currentIndex, boardName, email); this.dataBase.MoveTask(email, boardName, Convert.ToString(task.GetCreationTime()), Convert.ToString(task.GetDueDate()), currCol, task.GetTitle(), task.GetDescription(), movingCol.GetColumnName()); return(true); } else { Logger.GetLogger().Error("changing state couldn't been preformed.Limitation error!!"); return(false); } } else { Logger.GetLogger().Error("Can't move task from last column"); return(false); } }
/// <summary> /// This function is reponsible for adding Task instance to a column /// </summary> /// <param name="task"> Task to be added to this column </param> public void AddTaskToColumn(Task task, int columnNumber, string boardName, string email) { if (this.rightestColumn) { task.SetInRightest(true); } this.tasksList.Add(task); // Update data this.dataBase.AddTask(email, boardName, Convert.ToString(task.GetCreationTime()), Convert.ToString(task.GetDueDate()), task.GetState(), task.GetTitle(), task.GetDescription()); }