package seedu.address.logic;

import java.util.logging.Logger;

import javafx.collections.ObservableList;
import seedu.address.commons.core.ComponentManager;
import seedu.address.commons.core.LogsCenter;
import seedu.address.logic.commands.Command;
import seedu.address.logic.commands.CommandResult;
import seedu.address.logic.commands.exceptions.CommandException;
import seedu.address.logic.parser.Parser;
import seedu.address.model.Model;
import seedu.address.model.task.ReadOnlyTask;
import seedu.address.storage.Storage;

/**
 * The main LogicManager of the app.
 */
public class LogicManager extends ComponentManager implements Logic {
    private final Logger logger = LogsCenter.getLogger(LogicManager.class);

    private final Model model;
    private final Parser parser;

    public LogicManager(Model model, Storage storage) {
        this.model = model;
        this.parser = new Parser();
    }

    @Override
    public CommandResult execute(String commandText) throws CommandException {
        logger.info("----------------[USER COMMAND][" + commandText + "]");
        Command command = parser.parseCommand(commandText);
        command.setData(model);
        return command.execute();
    }

    @Override
    public ObservableList<ReadOnlyTask> getFilteredTaskList() {
        return model.getFilteredTaskList();
    }
}

@@ -358,16 +358,123 @@
 eption;%0A
+import seedu.address.logic.parser.DateTimeParser;%0Aimport seedu.address.logic.parser.DateTimeParserManager;%0A
 import s
@@ -499,32 +499,32 @@
 .parser.Parser;%0A
-
 import seedu.add
@@ -881,16 +881,129 @@
  parser;
+%0A    private final DateTimeParser dtParser;%0A    public static UndoManager undoCommandHistory = new UndoManager();
 %0A%0A    pu
@@ -1112,24 +1112,72 @@
 w Parser();%0A
+        dtParser = new DateTimeParserManager();%0A
     %7D%0A%0A    @
@@ -1400,16 +1400,16 @@
 dText);%0A
-
         
@@ -1432,16 +1432,57 @@
 model);%0A
+        command.setDateParser(dtParser);%0A
         

Add undo manager initialisation in Logic Manager class