private static async Task <int> Read(string address, string blockType, ushort maxJobs, ILoggerFactory loggerFactory) { var client = new Dacs7Client(address, PlcConnectionType.Pg, 5000, loggerFactory) { MaxAmQCalled = maxJobs, MaxAmQCalling = maxJobs }; var logger = loggerFactory?.CreateLogger("Dacs7Cli.BlocksOfType"); try { await client.ConnectAsync(); var blockTypeEnum = Enum.Parse <PlcBlockType>(blockType, true); var result = await client.ReadBlocksOfTypeAsync(blockTypeEnum); if (result != null) { foreach (var item in result) { logger?.LogInformation($"{blockType}:{item.Number} : {item.Language}"); } } else { logger?.LogError($"No result on blockinfo"); } } catch (Exception ex) { logger?.LogError($"An error occured in Read: {ex.Message} - {ex.InnerException?.Message}"); return(1); } finally { await client.DisconnectAsync(); } return(0); }