public ActionResult Create(FormCollection _POST) { try { CustomOrganization organization = new CustomOrganization() { Platform = _POST["platform"], Name = _POST["Organization.Name"], initials = _POST["Organization.initials"].ToUpper(), EmailDomainName = _POST["Organization.EmailDomainName"].ToLower(), Subnet = _POST["Organization.Subnet"], Vlan = _POST["Organization.Vlan"], Gateway = _POST["Organization.Gateway"], IPAddressRangeStart = _POST["Organization.IPAddressRangeStart"], IPAddressRangeEnd = _POST["Organization.IPAddressRangeEnd"], CreateVMM = _POST["createvmm"] == "on" ? true : false, createcrayon = _POST["createcrayon"] == "on" ? true : false, }; CustomCrayonTenantInfoDetailed crayontenantinfodetailed = new CustomCrayonTenantInfoDetailed() { InvoiceProfile = _POST["InvoiceProfile"].ToString(), DomainPrefix = _POST["CrayonDomainPrefix"], FirstName = _POST["CrayonFirstName"], LastName = _POST["CrayonLastName"], Email = _POST["CrayonTenantInfoDetailed.CrayonEmail"], PhoneNumber = _POST["CrayonPhoneNumber"], CustomerFirstName = _POST["CrayonCustomerFirstName"], CustomerLastName = _POST["CrayonCustomerLastName"], AddressLine1 = _POST["CrayonAddressLine1"], City = _POST["CrayonCity"], Region = _POST["CrayonRegion"], PostalCode = _POST["CrayonPostalCode"] }; model.Organization = organization; if (model.Organizations.Contains(organization.initials)) { throw new ArgumentException(string.Format("The organizaton '{0}' already exists.", organization.initials)); } if (organization.initials.Length < 2 || organization.initials.Length > 5) { throw new ArgumentException("The organizaton name must be between 2 and 5 characters."); } if (!organization.EmailDomainName.Contains(".") || organization.EmailDomainName.Contains("@")) { throw new ArgumentException(string.Format("'{0}' is not a valid email domain name.", organization.EmailDomainName)); } CommonCAS.Log(string.Format("has run Organization/Create() to create {0}", organization.initials)); // execute powershell script and dispose powershell object using (MyPowerShell ps = new MyPowerShell()) { ps.CreateOrganization(organization, crayontenantinfodetailed); var result = ps.Invoke(); if (result.Count() == 0) { model.OKMessage.Add(string.Format("Organization '{0}' created.", organization.initials)); CommonCAS.Log(string.Format("has run Organization/Create() to create {0}", organization.initials)); } else { CommonCAS.Log(string.Format("has run Organization/Create() to create {0}", organization.initials)); model.OKMessage.Add(string.Format("Organization '{0}' created with following info:", organization.initials)); if (organization.createcrayon) { foreach (PSObject item in result) { model.CrayonTenantDetailed.ExternalPublisherCustomerId = item.Members["ExternalPublisherCustomerId"].Value.ToString(); model.CrayonTenantDetailed.AdminUser = item.Members["AdminUser"].Value.ToString(); model.CrayonTenantDetailed.AdminPass = item.Members["AdminPass"].Value.ToString(); } } } } CommonCAS.Stats("Organization/Create"); return(View("CreateSuccess", model)); } catch (Exception exc) { CommonCAS.Log("Exception: " + exc.Message); model.ActionFailed = true; model.Message = exc.Message; return(View(model)); } }