/// <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); }
/// <summary> /// Support adding a new column to the board! /// </summary> /// <param name="columnId"> a unique Id of column </param> /// <param name="name"> a unique name of the column </param> public void addColumn(int columnId, string name) { if (columnId < 0 || columnId > boardColumns.Count) { throw new Exception("position must be between 0 and " + (boardColumns.Count - 1)); } for (int i = 0; i < boardColumns.Count; i++) { if (boardColumns[i].getName().Equals(name)) { throw new Exception("Column already named with this name."); } } if (name.Length > 15) { throw new Exception("Column name is too long"); } Column col = new Column(name); boardColumns.Insert(columnId, col); //Shifting columns. for (int i = columnId; i < boardColumns.Count; i++) { boardColumns.ElementAt(i).columnID = i; boardColumns.ElementAt(i).Save(); } //Insert new column to database. col.Email = Email; col.columnID = columnId; columnDalController.Insert(col.ToDalObject()); Save();//Saving board due to columns increment. }