Пример #1
0
        public void ActivateKey(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentNullException("key");
            }

            var now       = DateTime.UtcNow;
            var actionUrl = "/partnerapi/ActivateKey?code=" + HttpUtility.UrlEncode(key) + "&portal=" + HttpUtility.UrlEncode(TenantManager.GetCurrentTenant().TenantAlias);

            using var webClient = new WebClient();
            webClient.Headers.Add("Authorization", GetPartnerAuthHeader(actionUrl));
            try
            {
                webClient.DownloadData(partnerUrl + actionUrl);
            }
            catch (WebException we)
            {
                var error = GetException(we);
                if (error != null)
                {
                    throw error;
                }
                throw;
            }
            tariffService.ClearCache(TenantManager.GetCurrentTenant().TenantId);

            var timeout = DateTime.UtcNow - now - TimeSpan.FromSeconds(5);

            if (TimeSpan.Zero < timeout)
            {
                // clear tenant cache
                Thread.Sleep(timeout);
            }
            TenantManager.GetTenant(TenantManager.GetCurrentTenant().TenantId);
        }