Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tuple<TasksInfo, TasksInfo> PerformPersonTasks(const string& person, int task_count) {
- if (InfoPerson_.count(person) == 0) { // если такого разработчика нет
- return {};
- }
- TasksInfo updated_tasks = InfoPerson_.at(person); // обновленные задачи
- TasksInfo untouched_tasks;
- if (updated_tasks[TaskStatus::DONE] != 0) {
- untouched_tasks[TaskStatus::DONE] = updated_tasks[TaskStatus::DONE];
- }
- for (size_t i = 0; i < 3; ++i) {
- if (task_count <= InfoPerson_[person][static_cast<TaskStatus>(i)]) {
- updated_tasks[static_cast<TaskStatus>(i + 1)] += task_count;
- updated_tasks[static_cast<TaskStatus>(i)] -= task_count;
- untouched_tasks[static_cast<TaskStatus>(i)] = InfoPerson_[person][static_cast<TaskStatus>(i)] - task_count;
- break;
- } else {
- updated_tasks[static_cast<TaskStatus>(i + 1)] += InfoPerson_[person][static_cast<TaskStatus>(i)];
- updated_tasks[static_cast<TaskStatus>(i)] -= InfoPerson_[person][static_cast<TaskStatus>(i)];
- task_count -= InfoPerson_[person][static_cast<TaskStatus>(i)];
- }
- }
- InfoPerson_[person] = updated_tasks;;
- for (auto& [status, num_tasks] : updated_tasks) {
- num_tasks -= untouched_tasks[status];
- }
- untouched_tasks.erase(TaskStatus::DONE); // все невыполненные задачи
- return {updated_tasks, untouched_tasks};
- }
Advertisement
Add Comment
Please, Sign In to add comment