Ejemplo n.º 1
0
        /// <summary>
        /// Simple constructor of the board, so it need an email(unique) in order to create a new one for a new user!
        /// </summary>
        /// <param name="email"></param>
        public Board(string email)
        {
            taskId       = 1;
            Email        = email;
            boardColumns = new List <Column>();

            columnDalController = new DataAccess_Layer.ColumnDalController();
            taskDalController   = new DataAccess_Layer.TaskDalController();

            Column c1 = new Column("backlog");

            c1.Email    = email;
            c1.columnID = 0;

            columnDalController.Insert(c1.ToDalObject());
            Column c2 = new Column("in progress");

            c2.Email    = email;
            c2.columnID = 1;

            columnDalController.Insert(c2.ToDalObject());
            Column c3 = new Column("done");

            c3.Email    = email;
            c3.columnID = 2;
            columnDalController.Insert(c3.ToDalObject());

            boardColumns.Add(c1);
            boardColumns.Add(c2);
            boardColumns.Add(c3);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Simple constructor
 /// </summary>
 public BoardController()
 {
     boardController = new Dictionary <string, Board>();
     userOnline      = new Dictionary <string, bool>();
     UsersOfBoard    = new Dictionary <string, List <string> >();
     DataOfBoard     = new DataAccess_Layer.BoardDalController();
     DataOfTask      = new DataAccess_Layer.TaskDalController();
     DataOfColumn    = new DataAccess_Layer.ColumnDalController();
     id = 0;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Constructor converting DAL-Board to BL-Board - in order to load data
        /// </summary>
        /// <param name="b"></param>
        public Board(DataAccess_Layer.DTOs.BoardDTO b)
        {
            taskId = b.taskID;
            Email  = b.Email;
            columnDalController = new DataAccess_Layer.ColumnDalController();
            List <ColumnDTO> colDTO_list = columnDalController.SelectUserColumns(Email);

            boardColumns = new List <Column>();
            foreach (ColumnDTO col in colDTO_list)
            {
                boardColumns.Add(new Column(col));
            }
            id = b.ID;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Removing an exists column from the board!
 /// WE musts have minimum 2 columns on the board! so if the NumberOfColumns equals to 2 throws an error!
 /// All the tasks are moved to the neighbor column but only if the neighbor coloum has limit > NumOfHisTasks + NumOfOtherTasks
 /// </summary>
 /// <param name="columnID"> unique id for the column to be moved! </param>
 public void removeColumn(int columnID) // 0 (1) 2
 {
     taskDalController   = new DataAccess_Layer.TaskDalController();
     columnDalController = new DataAccess_Layer.ColumnDalController();
     if (columnID < 0 || columnID >= boardColumns.Count || boardColumns.Count == 2)
     {
         throw new Exception("Board must have minmum of 2 columns!");
     }
     if (columnID == 0)
     {
         if (!(getColumnById(1).getLimit() == -1) && getColumnById(1).getNumberOfTasks() + getColumnById(0).getNumberOfTasks() > getColumnById(1).getLimit())
         {
             throw new Exception("Couldnt remove the column!");
         }
         foreach (Task t in getColumnById(columnID).getTasks())
         {
             taskDalController.Delete(t.ToDalObject());
             boardColumns[1].addTask(t, t.getId());
         }
     }
     else
     {
         if (!(getColumnById(columnID - 1).getLimit() == -1) && getColumnById(columnID - 1).getNumberOfTasks() + getColumnById(columnID).getNumberOfTasks() > getColumnById(columnID - 1).getLimit())
         {
             throw new Exception("Couldnt remove the column!");
         }
         foreach (Task t in getColumnById(columnID).getTasks())
         {
             taskDalController.Delete(t.ToDalObject());
             boardColumns[columnID - 1].addTask(t, t.getId());
         }
     }
     columnDalController.Delete(getColumnById(columnID).ToDalObject());
     //Shifting columns back.
     for (int i = columnID + 1; i < boardColumns.Count; i++)
     {
         boardColumns.ElementAt(i).columnID--; // done id = 1
         boardColumns.ElementAt(i).Save();
     }
     boardColumns.RemoveAt(columnID);
     Save();//Saving board due to columns decrement.
 }