/// <summary>
        /// Save to do lists
        /// </summary>
        /// <param name="creationDate">creationDate</param>        
        /// <param name="companyId">companyId</param>
        public int? Save(DateTime creationDate, int companyId)
        {
            int newToDoListId = 0;

            ToDoListAddTDS ToDoListAddChanges = (ToDoListAddTDS)Data.GetChanges();
            if (ToDoListAddChanges.BasicInformation.Rows.Count > 0)
            {
                ToDoListToDoListGateway toDoListToDoListGateway = new ToDoListToDoListGateway(ToDoListAddChanges);

                foreach (ToDoListAddTDS.BasicInformationRow row in (ToDoListAddTDS.BasicInformationDataTable)ToDoListAddChanges.BasicInformation)
                {
                    string subject = ""; if (!row.IsSubjectNull()) subject = row.Subject;
                    string comment = ""; if (!row.IsCommentNull()) comment = row.Comment;
                    DateTime? dueDate = null; if (!row.IsDueDateNull()) dueDate = row.DueDate;
                    int? unitId = null; if (!row.IsUnitIdNull()) unitId = row.UnitId;
                    int employeeId = 0; if (!row.IsTeamMemberIDNull()) employeeId = row.TeamMemberID;
                    bool deleted = row.Deleted;
                    string state = row.State;
                    int createdById = row.CreatedByID;
                    int refId = 1;
                    string type_ = row.Type_;

                    // ... Insert the to do list
                    ToDoListToDoList toDoListToDoList = new ToDoListToDoList(null);
                    newToDoListId = toDoListToDoList.InsertDirect(subject, creationDate, createdById, state, dueDate, unitId, deleted, companyId);

                    // ... Insert first Activity (Default Assignation - first Activity)
                    ToDoListToDoListActivity toDoListToDoListActivity = new ToDoListToDoListActivity(null);
                    toDoListToDoListActivity.InsertDirect(newToDoListId, refId, employeeId, type_, creationDate, row.Deleted, companyId, comment);
                }
            }

            return newToDoListId;
        }
 // ////////////////////////////////////////////////////////////////////////
 // PUBLIC METHODS
 //
 /// <summary>
 /// Insert direct (direct to DB)
 /// </summary>
 /// <param name="subject">subject</param>
 /// <param name="creationDate">creationDate</param>
 /// <param name="createdById">createdById</param>
 /// <param name="state">state</param>
 /// <param name="dueDate">dueDate</param>
 /// <param name="unitId">unitId</param>
 /// <param name="deleted">deleted</param>
 /// <param name="companyId">companyId</param>       
 /// <returns>todoId</returns>
 public int InsertDirect(string subject, DateTime creationDate, int createdById, string state, DateTime? dueDate, int? unitId, bool deleted, int companyId)
 {
     ToDoListToDoListGateway toDoListToDoListGateway = new ToDoListToDoListGateway(null);
     return toDoListToDoListGateway.Insert(subject, creationDate, createdById, state, dueDate, unitId, deleted, companyId);
 }
 /// <summary>
 /// Update direct - to do  (direct to DB)
 /// </summary>
 /// <param name="originalToDoId">originalToDoId</param>
 /// <param name="originalSubject">originalSubject</param>
 /// <param name="originalCreationDate">originalCreationDate</param>
 /// <param name="originalCreatedById">originalCreatedById</param>
 /// <param name="originalState">originalState</param>
 /// <param name="originalDueDate">originalDueDate</param>
 /// <param name="originalUnitId">originalUnitId</param>
 /// <param name="originalDeleted">originalDeleted</param> 
 /// <param name="originalCompanyId">originalCompanyId</param>
 ///
 /// <param name="newToDoId">newToDoId</param>
 /// <param name="newSubject">newSubject</param>
 /// <param name="newCreationDate">newCreationDate</param>
 /// <param name="newCreatedById">newCreatedById</param>
 /// <param name="newState">newState</param>
 /// <param name="newDueDate">newDueDate</param>
 /// <param name="newUnitId">newUnitId</param>
 /// <param name="newDeleted">newDeleted</param>
 /// <param name="newCompanyId">newCompanyId</param>
 public void UpdateDirect(int originalToDoId, string originalSubject, DateTime originalCreationDate, int originalCreatedById, string originalState, DateTime? originalDueDate, int? originalUnitId, bool originalDeleted, int originalCompanyId, int newToDoId, string newSubject, DateTime newCreationDate, int newCreatedById, string newState, DateTime? newDueDate, int? newUnitId, bool newDeleted, int newCompanyId)
 {
     ToDoListToDoListGateway toDoListToDoListGateway = new ToDoListToDoListGateway(null);
     toDoListToDoListGateway.Update(originalToDoId, originalSubject, originalCreationDate, originalCreatedById, originalState, originalDueDate, originalUnitId, originalDeleted, originalCompanyId, newToDoId, newSubject, newCreationDate, newCreatedById, newState, newDueDate, newUnitId, newDeleted, newCompanyId);
 }
 /// <summary>
 /// DeleteDirect (direct to DB)
 /// </summary>
 /// <param name="toDoListId">toDoListId</param>        
 /// <param name="companyId">companyId</param>
 public void DeleteDirect(int toDoListId, int companyId)
 {
     ToDoListToDoListGateway toDoListToDoListGateway = new ToDoListToDoListGateway(null);
     toDoListToDoListGateway.Delete(toDoListId, companyId);
 }