DeviceStatusResponse.fromXML constructor

DeviceStatusResponse.fromXML(
  1. String xmlSTR
)

Implementation

factory DeviceStatusResponse.fromXML(String xmlSTR) {
  final document = XmlDocument.parse(xmlSTR);

  String messageName = document.rootElement.attributes
      .firstWhere((p0) => p0.name.toString() == "messageName")
      .value;
  // String xmlns = document.rootElement.attributes.firstWhere((p0) => p0.name.toString() == "xmlns").value;
  String messageID = document.rootElement.attributes
      .firstWhere((p0) => p0.name.toString() == "messageID")
      .value;
  // String xsi = document.rootElement.attributes.firstWhere((p0) => p0.name.toString() == "xmlns:xsi").value;
  String result = document.rootElement.childElements.first.attributes
      .firstWhere((p0) => p0.name.toString() == "result", orElse: orElseEmpty)
      .value;

  XmlElement resElement =
      document.rootElement.findAllElements("deviceStatusResponse").first;
  List<XmlElement> statusElements = resElement.childElements
      .where((element) => element.name.toString().endsWith("Status"))
      .toList();

  // print("-->${resElement}");
  List<Status> statusList = statusElements.map((e) {
    return Status.fromXML(e.toXmlString());
    // if(e.name.toString().startsWith("bp")){
    //   return BpStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("bt")){
    //   return BtStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("pr")){
    //   return PrStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("bc")){
    //   return BcStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("be")){
    //   return BeStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("dd")){
    //   return DdStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("zl")){
    //   return ZlStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("oc")){
    //   return OcStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("ms")){
    //   return MsStatus.fromXML(e.toXmlString());
    // }else if(e.name.toString().startsWith("bg")){
    //   return BgStatus.fromXML(e.toXmlString());
    // }else{
    //   return ZiStatus.fromXML(e.toXmlString());
    // }
  }).toList();

  return DeviceStatusResponse(
      messageName: messageName,
      messageID: int.parse(messageID),
      result: result,
      status: statusList);
}