/// <summary>
        /// Save
        /// </summary>
        /// <param name="companyId">companyId</param>
        public void Save(int companyId)
        {
            ToDoListInformationTDS toDoListInformationChanges = (ToDoListInformationTDS)Data.GetChanges();

            if (toDoListInformationChanges != null)
            {
                if (toDoListInformationChanges.BasicInformation.Rows.Count > 0)
                {
                    ToDoListInformationBasicInformationGateway toDoListInformationBasicInformationGateway = new ToDoListInformationBasicInformationGateway(toDoListInformationChanges);

                    // Update to do
                    foreach (ToDoListInformationTDS.BasicInformationRow row in (ToDoListInformationTDS.BasicInformationDataTable)toDoListInformationChanges.BasicInformation)
                    {
                        // Unchanged values
                        int toDoId = row.ToDoID;
                        string subject = toDoListInformationBasicInformationGateway.GetSubject(toDoId);
                        DateTime creationDate = toDoListInformationBasicInformationGateway.GetCreationDate(toDoId);
                        int createdById = toDoListInformationBasicInformationGateway.GetCreatedByID(toDoId);

                        // Original values
                        DateTime? originalDueDate = null; if (toDoListInformationBasicInformationGateway.GetDueDateOriginal(toDoId).HasValue) originalDueDate = (DateTime)toDoListInformationBasicInformationGateway.GetDueDateOriginal(toDoId);
                        int? originalUnitId = null; if (toDoListInformationBasicInformationGateway.GetUnitIDOriginal(toDoId).HasValue) originalUnitId = (int)toDoListInformationBasicInformationGateway.GetUnitIDOriginal(toDoId);
                        string originalState = toDoListInformationBasicInformationGateway.GetStateOriginal(toDoId);

                        // New variables
                        DateTime? newDueDate = null; if (toDoListInformationBasicInformationGateway.GetDueDate(toDoId).HasValue) newDueDate = (DateTime)toDoListInformationBasicInformationGateway.GetDueDate(toDoId);
                        int? newUnitId = null; if (toDoListInformationBasicInformationGateway.GetUnitID(toDoId).HasValue) newUnitId = (int)toDoListInformationBasicInformationGateway.GetUnitID(toDoId);
                        string newState = toDoListInformationBasicInformationGateway.GetState(toDoId);

                        ToDoListToDoList toDoListToDoList = new ToDoListToDoList(null);
                        toDoListToDoList.UpdateDirect(toDoId, subject, creationDate, createdById, originalState, originalDueDate, originalUnitId, row.Deleted, row.COMPANY_ID, toDoId, subject, creationDate, createdById, newState, newDueDate, newUnitId, row.Deleted, row.COMPANY_ID);
                    }
                }
            }
        }