Skip to content
28 changes: 18 additions & 10 deletions src/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,37 @@
import tracker.model.Subtask;
import tracker.model.Task;

import java.time.LocalDateTime;

public class Main {

public static void main(String[] args) {
final long MINUTES_IN_DAY = 60 * 24;
final LocalDateTime TASK_START_TIME = LocalDateTime.now();
System.out.println("Поехали!");
TaskManager inMemoryTaskManager = Managers.getDefault();

// Создайте две задачи, а также эпик с двумя подзадачами и эпик с одной подзадачей
Task task1 = new Task("tracker.model.Task 1", "Do task 1", inMemoryTaskManager.getTaskId());
Task task1 = new Task("tracker.model.Task 1", "Do task 1", inMemoryTaskManager.getTaskId(),
MINUTES_IN_DAY, TASK_START_TIME.minusDays(4));
inMemoryTaskManager.createTask(task1);
Task task2 = new Task("tracker.model.Task 2", "Do task 2", inMemoryTaskManager.getTaskId());
Task task2 = new Task("tracker.model.Task 2", "Do task 2", inMemoryTaskManager.getTaskId(),
MINUTES_IN_DAY, TASK_START_TIME.minusDays(3));
inMemoryTaskManager.createTask(task2);
Epic epic1 = new Epic("tracker.model.Epic 1", "Do all subtasks from epic 1", inMemoryTaskManager.getTaskId());
Epic epic1 = new Epic("tracker.model.Epic 1", "Do all subtasks from epic 1",
inMemoryTaskManager.getTaskId());
inMemoryTaskManager.createEpic(epic1);
Epic epic2 = new Epic("tracker.model.Epic 2", "Do all subtasks from epic 2", inMemoryTaskManager.getTaskId());
Epic epic2 = new Epic("tracker.model.Epic 2", "Do all subtasks from epic 2",
inMemoryTaskManager.getTaskId());
inMemoryTaskManager.createEpic(epic2);
Subtask subtask1 = new Subtask("tracker.model.Subtask 1", "Do subtask 1",
inMemoryTaskManager.getTaskId(), epic1);
Subtask subtask1 = new Subtask("tracker.model.Subtask 1", "Do subtask 1", inMemoryTaskManager.getTaskId(),
epic1, MINUTES_IN_DAY, TASK_START_TIME.minusDays(2));
inMemoryTaskManager.createSubtask(subtask1);
Subtask subtask2 = new Subtask("tracker.model.Subtask 2", "Do subtask 2",
inMemoryTaskManager.getTaskId(), epic1);
Subtask subtask2 = new Subtask("tracker.model.Subtask 2", "Do subtask 2", inMemoryTaskManager.getTaskId(),
epic1, MINUTES_IN_DAY, TASK_START_TIME.minusDays(1));
inMemoryTaskManager.createSubtask(subtask2);
Subtask subtask3 = new Subtask("tracker.model.Subtask 3", "Do subtask 3",
inMemoryTaskManager.getTaskId(), epic2);
Subtask subtask3 = new Subtask("tracker.model.Subtask 3", "Do subtask 3", inMemoryTaskManager.getTaskId(),
epic2, MINUTES_IN_DAY, TASK_START_TIME);
inMemoryTaskManager.createSubtask(subtask3);

// Распечатайте списки эпиков, задач и подзадач через System.out.println(..)
Expand Down
58 changes: 36 additions & 22 deletions src/tracker/controllers/FileBackedTaskManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.LocalDateTime;

public class FileBackedTaskManager extends InMemoryTaskManager {

private static final String HEADER = "id,type,name,status,description,epic";
private static final String HEADER = "id,type,name,status,description,duration,startTime,endTime,epic";
private final File file;

public FileBackedTaskManager(File file) {
Expand All @@ -24,14 +25,22 @@ public FileBackedTaskManager(File file) {
}

public static void main(String[] args) {
final long MINUTES_IN_DAY = 60 * 24;
final LocalDateTime TASK_START_TIME = LocalDateTime.now();

// Заведите несколько разных задач, эпиков и подзадач.
Task task1 = new Task("task 1", "task 1", 1, Status.NEW);
Task task2 = new Task("task 2", "task 2", 2, Status.NEW);
Task task1 = new Task("task 1", "task 1", 1, Status.NEW, MINUTES_IN_DAY,
TASK_START_TIME.minusDays(4));
Task task2 = new Task("task 2", "task 2", 2, Status.NEW, MINUTES_IN_DAY,
TASK_START_TIME.minusDays(3));
Epic epic1 = new Epic("epic 1", "epic 1", 3);
Epic epic2 = new Epic("epic 2", "epic 2", 4);
Subtask subtask1 = new Subtask("subtask 1", "subtask 1", 5, epic1);
Subtask subtask2 = new Subtask("subtask 2", "subtask 2", 6, epic1);
Subtask subtask3 = new Subtask("subtask 3", "subtask 3", 7, epic2);
Subtask subtask1 = new Subtask("subtask 1", "subtask 1", 5, epic1, MINUTES_IN_DAY,
TASK_START_TIME.minusDays(2));
Subtask subtask2 = new Subtask("subtask 2", "subtask 2", 6, epic1, MINUTES_IN_DAY,
TASK_START_TIME.minusDays(1));
Subtask subtask3 = new Subtask("subtask 3", "subtask 3", 7, epic2, MINUTES_IN_DAY,
TASK_START_TIME);

try {
File tempFile = File.createTempFile("sprint7-", ".csv");
Expand All @@ -48,9 +57,9 @@ public static void main(String[] args) {

fileBackedTasksManager.getTaskById(1);
fileBackedTasksManager.getTaskById(2);
fileBackedTasksManager.getTaskById(7);
fileBackedTasksManager.getTaskById(3);
fileBackedTasksManager.getTaskById(5);
fileBackedTasksManager.getSubtaskById(7);
fileBackedTasksManager.getEpicById(3);
fileBackedTasksManager.getSubtaskById(5);

System.out.println(fileBackedTasksManager.getHistory());

Expand Down Expand Up @@ -185,19 +194,24 @@ static void fromString(String value, FileBackedTaskManager fileBackedTasksManage
String[] elements = value.split(",");
int id = Integer.parseInt(elements[0]);
switch (elements[1]) {
case "TASK":
fileBackedTasksManager.tasks.put(id, new Task(elements[2], elements[4], id,
Status.valueOf(elements[3])));
break;
case "EPIC":
fileBackedTasksManager.epics.put(id, new Epic(elements[2], elements[4], id,
Status.valueOf(elements[3])));
break;
case "SUBTASK":
fileBackedTasksManager.subtasks.put(id, new Subtask(elements[2], elements[4], id,
Status.valueOf(elements[3]),
fileBackedTasksManager.getEpicById(Integer.parseInt(elements[5]))));
break;
case "TASK" -> {
Task task = new Task(elements[2], elements[4], id,
Status.valueOf(elements[3]), Long.parseLong(elements[5]), LocalDateTime.parse(elements[6]));
fileBackedTasksManager.tasks.put(id, task);
fileBackedTasksManager.sortedTasks.add(task);
}
case "EPIC" -> {
Epic epic = new Epic(elements[2], elements[4], id, Status.valueOf(elements[3]),
Long.parseLong(elements[5]), LocalDateTime.parse(elements[6]), LocalDateTime.parse(elements[7]));
fileBackedTasksManager.epics.put(id, epic);
}
case "SUBTASK" -> {
Subtask subtask = new Subtask(elements[2], elements[4], id, Status.valueOf(elements[3]),
fileBackedTasksManager.epics.get(Integer.parseInt(elements[8])), Long.parseLong(elements[5]),
LocalDateTime.parse(elements[6]));
fileBackedTasksManager.subtasks.put(id, subtask);
fileBackedTasksManager.sortedTasks.add(subtask);
}
}
if (id > fileBackedTasksManager.taskId) {
fileBackedTasksManager.taskId = id;
Expand Down
Loading