def METHOD_NAME(search_result_cases: List[OeciCase], edits) -> Tuple[List[OeciCase], List[Charge]]:
    edited_cases: List[OeciCase] = []
    new_charges_accumulator: List[Charge] = []
    for case in search_result_cases:
        if case.summary.case_number not in edits.keys():
            edited_cases.append(case)
    for edit_action_case_number, edit in edits.items():
        if edit["summary"]["edit_status"] == EditStatus.ADD:
            case = OeciCase.empty(case_number=str(edit["summary"]["case_number"]))
        elif edit["summary"]["edit_status"] in (EditStatus.UPDATE, EditStatus.DELETE, EditStatus.UNCHANGED):
            case = next(
                (case for case in search_result_cases if case.summary.case_number == edit_action_case_number)
            )
        else:
            raise ValueError(f"Unknown edit status for case {case.summary.case_number}")
        edited_case, new_charges = RecordEditor._edit_case(case, edit)
        edited_cases.append(edited_case)
        new_charges_accumulator += new_charges
    return edited_cases, new_charges_accumulator