BitLockerStatusModel.fromOutputString constructor

BitLockerStatusModel.fromOutputString(
  1. String output
)

Implementation

factory BitLockerStatusModel.fromOutputString(String output) {
  String extractedConversionStatus =
      extractValue(RegularExpressions.conversionStatusPattern, output).trim();
  String extractedLockStatus =
      extractValue(RegularExpressions.lockStatusPattern, output).trim();
  String extractedProtectionStatus =
      extractValue(RegularExpressions.protectionStatusPattern, output).trim();
  String extractedSize = extractValue(RegularExpressions.sizePattern, output)
      .trim()
      .replaceAll(' GB', '');
  String extractedPercentageEncrypted =
      extractValue(RegularExpressions.percentageEncryptedPattern, output)
          .trim()
          .replaceAll('%', '');
  LockStatusEnum lockStatus;
  ConversionStatusEnum status;
  ProtectionStatusEnum protectionStatus;

  switch (extractedLockStatus) {
    case "Locked":
      lockStatus = LockStatusEnum.locked;
      break;
    case "Unlocked":
      lockStatus = LockStatusEnum.unLocked;
      break;
    default:
      lockStatus = LockStatusEnum.unLocked;
      break;
  }

  switch (extractedProtectionStatus) {
    case "Protection Off":
      protectionStatus = ProtectionStatusEnum.protectionOff;
      break;
    case "Unknown":
      protectionStatus = ProtectionStatusEnum.unknown;
      break;
    case "Protection On":
      protectionStatus = ProtectionStatusEnum.protectionOn;
      break;
    default:
      protectionStatus = ProtectionStatusEnum.unknown;
      break;
  }

  switch (extractedConversionStatus) {
    case "Fully Encrypted":
      status = ConversionStatusEnum.fullyEncrypted;
      break;
    case "Fully Decrypted":
      status = ConversionStatusEnum.fullyDecrypted;
      break;
    case "Encryption in Progress":
      status = ConversionStatusEnum.encryptionInProgress;
      break;
    case "Unknown":
      status = ConversionStatusEnum.unknown;
      break;
    default:
      status = ConversionStatusEnum.unknown;
      break;
  }

  return BitLockerStatusModel(
    size: double.parse(extractedSize == 'Unknown' ? '0' : extractedSize),
    bitLockerVersion: double.parse(
        extractValue(RegularExpressions.bitLockerVersionPattern, output)
            .trim()),
    conversionStatus: status,
    encryptionMethod:
        extractValue(RegularExpressions.encryptionMethodPattern, output)
            .trim(),
    identificationField:
        extractValue(RegularExpressions.identificationFieldPattern, output),
    lockStatus: lockStatus,
    protectionStatus: protectionStatus,
    percentageEncrypted: double.parse(
        extractedPercentageEncrypted == 'Unknown'
            ? '0'
            : extractedPercentageEncrypted),
    keyProtector: keyProtectorsExtractValue(output),
  );
}