public async Task UpdateTask(UpdateTaskData data, User user, bool newtask = false, bool timeShift = true)
        {
            var sqlRExecutor   = new ExecutorRepository(_logger);
            var sqlRTaskStatus = new TaskStatusRepository(_logger);
            var sqlRComment    = new CommentRepository(_logger);
            var sqlRDocuments  = new DocumentRepository(_logger);
            var sqlRTask       = new TaskRepository(_logger);

            int permissions = user.Role.Permissions;

            await sqlRTask.UpdateEditDate(data.TraintaskId);

            //Надо добавить к таске нового исполнителя
            data.TrainTaskExecutorsId = (await sqlRExecutor.AddNewExecutorToTask(data, user, timeShift)).Id;

            //Надо поставить статус указанный изначально, а потом запустить автосмену, в случае это не не админ с новой задачей
            await ChangeStatusAndExecutors(data, user, newtask, permissions);

            if (data.StatusId != null)
            {
                await sqlRTaskStatus.ChangeStatusByTrainTaskId(data.TraintaskId, data.StatusId.Value, user, newtask, timeShift);
            }


            //Добавляем комент
            var commentId = 0;

            data.CommentText = data.CommentText ?? "";
            commentId        = await sqlRComment.AddCommentByTrainTaskId(data.TraintaskId, data.CommentText, user);


            //Добавляем файлы, если есть комент
            if (data.FilesId != null && data.FilesId.Length > 0 && commentId != 0)
            {
                await sqlRDocuments.AddToCommentId(data.FilesId, commentId);
            }
        }