/// <summary>
        /// Create a task (Indicating the due date in a "natural" way).
        /// </summary>
        /// <param name="content">Content of the task.</param>
        /// <param name="projectID">Project identifier.</param>
        /// <param name="order">Order.</param>
        /// <param name="labelIDs">Label identifiers.</param>
        /// <param name="priority">Priority.</param>
        /// <param name="dueString">Expiration specified in a "natural" manner.</param>
        /// <param name="dueLanguage">Expiry language.</param>
        /// <returns>Task created.</returns>
        public async Task <TaskModel> CreateTaskAsync(string content, long projectID, uint order, List <int> labelIDs, TaskModel.PriorityType priority, string dueString, string dueLanguage)
        {
            var parameters = new
            {
                content,
                project_id = projectID,
                order,
                label_ids  = labelIDs,
                priority   = (int)priority,
                due_string = dueString,
                due_lang   = dueLanguage
            };

            return(await CreateTaskAsync(parameters));
        }
        /// <summary>
        /// Create a task (Indicating expiration date as date without time).
        /// </summary>
        /// <param name="content">Content of the task.</param>
        /// <param name="projectID">Project identifier.</param>
        /// <param name="order">Order.</param>
        /// <param name="labelIDs">Label identifiers.</param>
        /// <param name="priority">Priority.</param>
        /// <param name="dueDate">Expiration specified as date.</param>
        /// <returns>Task created.</returns>
        public async Task <TaskModel> CreateTaskAsync(string content, long projectID, uint order, List <int> labelIDs, TaskModel.PriorityType priority, DateTime dueDate)
        {
            if (dueDate.Hour == 0 &&
                dueDate.Minute == 0 &&
                dueDate.Second == 0)
            {
                var parameters = new
                {
                    content,
                    project_id = projectID,
                    order,
                    label_ids = labelIDs,
                    priority  = (int)priority,
                    due_date  = dueDate.ToString("yyyy-MM-dd")
                };

                return(await CreateTaskAsync(parameters));
            }
            else
            {
                var parameters = new
                {
                    content,
                    project_id = projectID,
                    order,
                    label_ids    = labelIDs,
                    priority     = (int)priority,
                    due_datetime = dueDate.ToString("yyyy-MM-ddThh:mm:ssZ")
                };

                return(await CreateTaskAsync(parameters));
            }
        }
        /// <summary>
        /// Update the indicated task.
        /// </summary>
        /// <param name="taskID">Task identifier.</param>
        /// <param name="content">Content of the task.</param>
        /// <param name="projectID">Project identifier.</param>
        /// <param name="labelIDs">Label identifiers.</param>
        /// <param name="priority">Priority.</param>
        /// <param name="dueString">Expiration specified in a "natural" manner.</param>
        /// <param name="dueLanguage">Expiry language.</param>
        /// <returns>Indicates if the modification has been made.</returns>
        public async Task <bool> UpdateTaskAsync(long taskID, string content, long projectID, List <int> labelIDs, TaskModel.PriorityType priority, string dueString, string dueLanguage)
        {
            var parameters = new
            {
                content,
                project_id = projectID,
                label_ids  = labelIDs,
                priority   = (int)priority,
                due_string = dueString,
                due_lang   = dueLanguage
            };

            return(await UpdateTaskAsync(taskID, parameters));
        }