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); } }