コード例 #1
0
    def convertJSONToList(itemType: type, jsonObject):
        list = json.loads(jsonObject)
        newList = []
        newItem = None
        for item in list:
            if itemType is Student:
                newItem = Student(
                    TypeParser.parseInt(item["studentId"], InvalidStudentId),
                    item["name"],
                    TypeParser.parseInt(item["group"], InvalidStudentGroup))
                StudentValidator.validateStudent(newItem)
            elif itemType is Grade:
                newItem = Grade(
                    TypeParser.parseInt(item["studentId"], InvalidStudentId),
                    TypeParser.parseInt(item["assignmentId"],
                                        InvalidAssignmentId), item["grade"])
                GradeValidator.validateGrade(newItem)
            elif itemType is Assignment:
                newItem = Assignment(
                    TypeParser.parseInt(item["assignmentId"],
                                        InvalidAssignmentId),
                    item["description"],
                    TypeParser.parseDate(item["deadline"],
                                         InvalidAssignmentDeadline))
                AssignmentValidator.validateAssignment(newItem)
            newList.append(newItem)

        return newList
コード例 #2
0
 def findAssignment(self, assignmentId: int) -> Assignment:
     """
     Searches an assignment and returns it if found. Raises InvalidAssignmentId otherwise
     """
     assignment = Assignment(assignmentId)
     foundAssignment = self.__assignmentRepository.getItem(assignment)
     if foundAssignment is None:
         raise AssignmentIdNotFound
     return foundAssignment
コード例 #3
0
    def addAssignment(self, assignmentId: int, description: str,
                      deadline: datetime.date) -> Assignment:
        """
        Adds an assignment to the repository
        """
        assignment = Assignment(assignmentId, description, deadline)
        AssignmentValidator.validateAssignment(assignment)
        self.__assignmentRepository.addItem(assignment)
        self.__changesStack.addChange(ChangesStack.ItemAdded(assignment),
                                      newCommit=True)

        return assignment
コード例 #4
0
 def convertTuples(tupleList: List[Tuple], itemType: type):
     newList = []
     newItem = None
     for item in tupleList:
         if itemType is Student:
             newItem = Student(item[0], item[1], item[2])
         elif itemType is Grade:
             newItem = Grade(item[0], item[1], item[2] if item[2] != "NULL" else None)
         elif itemType is Assignment:
             newItem = Assignment(item[0], item[1], TypeParser.parseDate(item[2], InvalidAssignmentDeadline))
         newList.append(newItem)
     return newList
コード例 #5
0
 def assignmentToStr(assignment: Assignment):
     deadline = ManageAssignmentsMenu.dateToStr(assignment.getDeadline())
     return str(assignment.getAssignmentId()
                ) + " - " + assignment.getDescription() + " - " + deadline
コード例 #6
0
 def validateAssignment(assignment: Assignment):
     AssignmentValidator.validateId(assignment.getAssignmentId())
     AssignmentValidator.validateDescription(assignment.getDescription())
     AssignmentValidator.validateDeadline(assignment.getDeadline())