public static void FirstOptionSelected(Controller controller, out string[] viewDataDomains, out List<DomainDataFromXml> domainData, string indexFormDomains)
{
string[] domainsSubmitted = indexFormDomains.Split(new[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
string domainsArray = string.Empty; // format for StartSearch
for (int i = 0; i < domainsSubmitted.Length; i++)
{
if (i < domainsSubmitted.Length - 1)
{
domainsArray += domainsSubmitted[i].Trim() + ' ';
}
else
{
domainsArray += domainsSubmitted[i].Trim();
}
}
List<string> domains = DomainSearch.Helpers.DomainSearchHelper.GetDomainsForCheck(domainsArray, ResellerHelper.GetResellerId());
DomainDataFromXml[] unavailableDomains, domainDataFromDs;
var service = GeneralHelper.GetPublicOrderService(controller.HttpContext.ApplicationInstance.Context);
string countryCode = ResellerHelper.GetResellerCountryCode();
string currencyCode = ResellerHelper.GetResellerCurrencyCode();
Guid resellerId = ResellerHelper.GetResellerId();
unavailableDomains = DomainSearch.Helpers.DomainSearchHelper.MarkDomainsAsUnavailable(
GeneralHelper.GetUnavailableDomainsHelper(controller, domains.ToArray()),
service,
Guid.Empty,
resellerId,
currencyCode,
countryCode);
bool hideUnavailableDomains = true;
if (controller.HttpContext.Application.AllKeys.Contains("HideUnavailableDomains"))
{
hideUnavailableDomains = controller.HttpContext.Application["HideUnavailableDomains"].ToString().ToLower() == "true";
}
foreach (DomainDataFromXml unavailableDomain in unavailableDomains)
{
// markDomains returns decoded domains
string domain = SimpleDnsPlus.IDNLib.Encode(unavailableDomain.ProductName);
if (domains.Any(d => d == domain) && hideUnavailableDomains)
{
domains.Remove(SimpleDnsPlus.IDNLib.Encode(domain));
}
}
domainDataFromDs = DomainSearch.Helpers.DomainSearchHelper.GetDomainData(
domains.ToArray(),
service,
Guid.Empty,
resellerId,
currencyCode,
countryCode);
domainData = unavailableDomains.Select(data => new DomainDataFromXml
{
IsDomain = data.IsDomain,
ProductDuration = data.ProductDuration,
ProductID = data.ProductID,
ProductName = data.ProductName,
ProductPrice = data.ProductPrice,
ProductStatus = data.ProductStatus,
}).ToList();
domainData.AddRange(domainDataFromDs.Select(data => new DomainDataFromXml
{
IsDomain = data.IsDomain,
NumberOfDomains = data.NumberOfDomains,
ProductDuration = data.ProductDuration,
ProductID = data.ProductID,
ProductName = data.ProductName,
ProductPrice = data.ProductPrice,
ProductStatus = data.ProductStatus,
TransactionId = data.TransactionId
}));
viewDataDomains = domains.ToArray();
}