public override void ReportPackage(Package package) { if (package.IsSupported) { if (package.Empresa == null) { _strategies.TryGetValue(PackageStatus.unsupported, out IPrintStrategy printStrategy); DoPrint(package, printStrategy, null); } else { PackageStatusResponse packageStatusResponse = _deliveryManager.CheckPackageStatus(package); _strategies.TryGetValue(packageStatusResponse.Status, out IPrintStrategy printStrategy); DoPrint(package, printStrategy, packageStatusResponse); } } else { _strategies.TryGetValue(PackageStatus.unknown, out IPrintStrategy printStrategy); DoPrint(package, printStrategy, null); } }