Atomia.Web.Plugin.PublicOrder.Controllers.PublicOrderController.Domain C# (CSharp) Method

Domain() private method

private Domain ( ) : System.Web.Mvc.ActionResult
return System.Web.Mvc.ActionResult
        public ActionResult Domain()
        {
            string domain = this.RouteData.Values["domain"].ToString();

            string[] viewData_domains;
            List<DomainDataFromXML> domainData;

            // Validate domains because they come from URL
            string[] domainsSubmitted = domain.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            Regex regexFront = new Regex(RegularExpression.GetRegularExpression("DomainFront"));
            Regex regexFull = new Regex(RegularExpression.GetRegularExpression("Domain"));

            int allowedDomainLength;
            int numberOfDomainsAllowed;
            if (this.HttpContext.Application["DomainSearchAllowedDomainLength"] != null && (string)this.HttpContext.Application["DomainSearchAllowedDomainLength"] != String.Empty
                && this.HttpContext.Application["DomainSearchNumberOfDomainsAllowed"] != null && (string)this.HttpContext.Application["DomainSearchNumberOfDomainsAllowed"] != String.Empty)
            {
                allowedDomainLength = Int32.Parse((string)this.HttpContext.Application["DomainSearchAllowedDomainLength"]);
                numberOfDomainsAllowed = Int32.Parse((string)this.HttpContext.Application["DomainSearchNumberOfDomainsAllowed"]);
            }
            else
            {
                throw new ConfigurationErrorsException("Missing AllowedDomainLength or NumberOfDomainsAllowed in configuration");
            }

            bool wasAnError = false;
            for (int i = 0; i < domainsSubmitted.Length; i++)
            {
                if (domainsSubmitted.Length > numberOfDomainsAllowed)
                {
                    // allowed number of domains searched exceeded
                    Session["WasAnErrorFromQuery"] = 2;
                    wasAnError = true;
                }

                if (!regexFront.IsMatch(domainsSubmitted[i]) && !regexFull.IsMatch(domainsSubmitted[i]))
                {
                    // domains contain characters that are not allowed
                    Session["WasAnErrorFromQuery"] = 3;
                    wasAnError = true;
                }

                if (domainsSubmitted[i].Length > allowedDomainLength)
                {
                    // allowed length of domain name (number of characters) exeeded
                    Session["WasAnErrorFromQuery"] = 3;
                    wasAnError = true;
                }

                if (wasAnError)
                {
                    return RedirectToAction("Index");
                }
            }

            // Get ViewData
            IndexHelper.FirstOptionSelected(this, out viewData_domains, out domainData, domain.Trim());

            Session["domains"] = viewData_domains.ToArray();
            Session["firstOption"] = true;
            Session["multiDomains"] = domainData;

            return RedirectToAction("Select");
        }