using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; namespace MAX { public class ClientFactory { public ClientFactory(IConfiguration configuration) { configuration.Bind(this); } public Client GetClient(ILogger logger, int vendorId, string serialNumber, int userId, string username, string password) { var client = new Client(logger, LogResponses, Host, Port, vendorId, serialNumber, userId, username, password); client.ConnectTimeout = ConnectTimeout; client.ReceiveTimeout = ReceiveTimeout; client.SendTimeout = SendTimeout; return client; } public Client GetClient(ILogger logger, LoginCredentials credentials) { var client = new Client(logger, LogResponses, Host, Port, credentials); client.ConnectTimeout = ConnectTimeout; client.ReceiveTimeout = ReceiveTimeout; client.SendTimeout = SendTimeout; return client; } public string Host { get; set; } public int Port { get; set; } public int ConnectTimeout { get; set; } public int ReceiveTimeout { get; set; } public int SendTimeout { get; set; } public bool LogResponses { get; set; } } }