Exemple #1
0
        /// <summary>
        /// Gets a list of domain names based on tld:s available for sale.
        /// </summary>
        private IEnumerable <string> GetDomainNames(ICollection <string> searchTerms)
        {
            var domainsArray    = String.Join(" ", searchTerms);
            var domainsForCheck = DomainSearchHelper.GetDomainsForCheck(
                domainsArray,
                this.resellerId,
                Guid.Empty,
                this.shopNameProvider.GetShopName(),
                this.countryCode);

            return(domainsForCheck);
        }
Exemple #2
0
        /// <summary>
        /// Gets a list of domains that are either taken locally or failing to match tld requirements.
        /// </summary>
        private IEnumerable <DomainDataFromXml> CheckLocalStatus(IEnumerable <string> domains)
        {
            var results               = new List <DomainDataFromXml>();
            var localStatusString     = String.Empty;
            var domainCheckAttributes = BillingApi.CheckDomains(domains);
            var tldBasedRegexStrings  = DomainSearchHelper.GetTLDBasedRegexes(
                this.resellerId,
                this.shopNameProvider.GetShopName(),
                this.countryCode);
            IEnumerable <Regex> tldBasedRegexes = null;

            if (tldBasedRegexStrings.Count > 0)
            {
                tldBasedRegexes = tldBasedRegexStrings.Select(r => new Regex(r));
            }

            foreach (var attr in domainCheckAttributes)
            {
                if (attr.Value.ToLower() == "taken")
                {
                    localStatusString += attr.Name + "|TAKEN ";
                }
                else if (tldBasedRegexes != null)
                {
                    var decodedDomainName = IDNLib.Decode(attr.Name.Trim());

                    if (!tldBasedRegexes.Any(regex => regex.IsMatch(decodedDomainName)))
                    {
                        localStatusString += attr.Name + "|SPECIAL ";
                    }
                }
            }

            if (localStatusString != String.Empty)
            {
                results = DomainSearchHelper.MarkDomainsAsUnavailable(
                    localStatusString.TrimEnd(' '),
                    BillingApi.Service,
                    Guid.Empty,
                    this.resellerId,
                    this.shopNameProvider.GetShopName(),
                    this.currencyCode,
                    this.countryCode).ToList();

                foreach (var domainData in results)
                {
                    domainData.ProductName = IDNLib.Encode(domainData.ProductName);
                }
            }

            return(results);
        }
Exemple #3
0
        /// <summary>
        /// Start search for domain names in Atomia DomainRegistration
        /// </summary>
        private IEnumerable <DomainDataFromXml> StartSearch(IEnumerable <string> domainNamesToCheck)
        {
            if (domainNamesToCheck == null || domainNamesToCheck.Count() <= 0)
            {
                return(new List <DomainDataFromXml>());
            }

            var result = DomainSearchHelper.StartSearch(
                domainNamesToCheck.ToArray(),
                BillingApi.Service,
                Guid.Empty,
                this.resellerId,
                this.shopNameProvider.GetShopName(),
                this.currencyCode,
                this.countryCode);

            return(result);
        }
        private List <string> GetTldsForSearchedDomains(ICollection <string> searchTerms)
        {
            var tlds        = new List <string>();
            var domainNames = DomainSearchHelper.StripProtocolFromDomainNames(searchTerms.ToArray())
                              .Select(s => s + ".").ToList();

            foreach (var term in searchTerms)
            {
                if (term.Contains("."))
                {
                    if (domainNames.Any(d => term.Contains(d)))
                    {
                        var domainName = domainNames.Where(d => term.Contains(d)).FirstOrDefault();
                        var startIndex = term.IndexOf(domainName) + domainName.Length;
                        var tld        = term.Substring(startIndex, term.Length - startIndex);
                        tlds.Add(tld);
                    }
                }
            }

            return(tlds);
        }
Exemple #5
0
        /// <summary>
        /// Check status of results from search with specified id
        /// </summary>
        public DomainSearchData CheckStatus(int domainSearchId)
        {
            var results = new List <DomainResult>();

            var statusData = DomainSearchHelper.GetAvailabilityStatus(
                domainSearchId.ToString(),
                BillingApi.Service,
                Guid.Empty,
                resellerId,
                this.shopNameProvider.GetShopName(),
                currencyCode,
                countryCode);

            int transactionId;

            if (!Int32.TryParse(statusData.TransactionId, out transactionId))
            {
                transactionId = -1;
            }
            ;

            foreach (var domain in statusData.DomainStatuses)
            {
                var domainResult = CreateDomainResult(domain.ProductId, domain.Status, domain.DomainName, transactionId);
                results.Add(domainResult);
            }

            var data = new DomainSearchData
            {
                DomainSearchId = transactionId,
                FinishSearch   = statusData.FinishSearch,
                Results        = results
            };

            return(data);
        }