reply method

Future<void> reply(
  1. Reply reply
)

Implementation

Future<void> reply(Reply reply) async {
  var updatedMessage = await student.messages.get(reply.message.ref);
  if (updatedMessage == null) {
    return;
  }
  String id = _calculateIdNumberFromThreadAndMessage(null, updatedMessage);
  String url = student.buildUrl("beskeder2.aspx");
  String openingUrl = student
      .buildUrl("beskeder2.aspx?mappeid=${reply.message.ref.folderId}");
  var openingSoup = await postLoggedInPageSoup(openingUrl, "__Page", {
    r"__EVENTARGUMENT": reply.message.ref.id,
    r"s$m$Content$Content$ListGridSelectionTree$folders":
        reply.message.ref.folderId.toString()
  });
  String target = r"s$m$Content$Content$MessageThreadCtrl$MessagesGV$ctl" +
      id +
      r"$SendMessageBtn";
  Map<String, String> data = {
    r"s$m$searchinputfield": "",
    r"s$m$Content$Content$ListGridSelectionTree$folders":
        reply.message.ref.folderId.toString(),
    r"s$m$Content$Content$MessageThreadCtrl$MessagesGV$ctl" +
        id +
        r"$EditModeHeaderTitleTB$tb": reply.topic,
    r"s$m$Content$Content$MessageThreadCtrl$MessagesGV$ctl" +
        id +
        r"$AttachmentDocChooser$selectedDocumentId": "",
    r"s$m$Content$Content$MessageThreadCtrl$MessagesGV$ctl" +
        id +
        r"$EditModeContentBBTB$TbxNAME$tb": reply.content
  };
  var aspData = extractASPData(openingSoup!, target);
  aspData.addAll(data);
  await request(url,
      data: aspData,
      options: Options(
        method: 'POST',
        contentType: "application/x-www-form-urlencoded",
      ));
}