Пример #1
0
 public void Init(string web, IConfig config = null, ILogger logger = null, int mxtry = 10, CancellationToken ct = default(CancellationToken))
 {
     if (config != null)
     {
         if (_config == null || (_config.Email != config.Email))
         {
             _config     = config;
             _config.Dir = Global.RegisterNewDirectory(_config.Email);
             if (logger != null)
             {
                 _logger = logger;
             }
             else
             {
                 _logger = new Logger( );
                 _logger.Open(string.Format(@"{0}\log\{1}_{2}_{3}.log", Global.APP_DIR, DateTime.Now.ToString("yyyy'-'MM'-'dd"), _config.Email.Replace("@", "").Replace("_", "").Replace(".", ""), Guid.NewGuid( ).ToString("N")));
             }
             _logger.Write("Working for {0}", _config.Email);
         }
     }
     if (domain != null)
     {
         if (domain.ZoneName == web)
         {
             return;
         }
     }
     domain = _config.Domain.Find(a => a.DomainName == web);
     if (domain == null)
     {
         string msg = string.Format("No data found for domain {0} against Email {1}!!!", web, _config.Email);
         _logger.Write(msg);
         throw new Exception(msg);
     }
     _logger.Write("Working for {0}", web);
     _domainDir = Global.RegisterNewDirectory(domain.ZoneName, _config.Dir);
     Global.RegisterNewDirectory("order", _domainDir);
     _orderAbsolute = string.Format(@"{0}\order\new_order.bin", _domainDir);
     _txtAbsolute   = string.Format(@"{0}\order\_acme-challenge.txt", _domainDir);
     _certDir       = string.Format(@"{0}\cert\", _domainDir);
     FileWorker.CreateDirectory(_certDir);
     _cfDns = new CFDNS(new CFConfig {
         CF_API        = Global.gConfig.CF_API,
         CF_URI        = Global.gConfig.CF_URI,
         CF_AUTH_KEY   = config.CF_AUTH_KEY,
         CF_AUTH_EMAIL = config.Email,
         CF_DNS_ZONE   = domain.CF_DNS_ZONE
     }, _logger);
     _cancellationTokenSource = new CancellationTokenSource( );
     MAX_TRY = mxtry;
     _appct  = _cancellationTokenSource.Token;
     _ct     = ct;
 }