private Assortment CreateAssortment(StructureInfo structureInfo, string name, string domainName) { var assortment = new Assortment { Id = structureInfo.ProductCatalog.Assortment.Id + _slugifyService.Slugify(CultureInfo.CurrentCulture, name), AccessControlList = structureInfo.ProductCatalog.Assortment.AccessControlList.MakeWritable() }; foreach (var language in _languageService.GetAll()) { assortment.Localizations[language.CultureInfo].Name = name; } _assortmentService.Create(assortment); return(assortment); }
private bool ValidateImportForm(DeploymentViewModel.ImportViewModel importForm) { var isValid = true; if (string.IsNullOrWhiteSpace(importForm.PackageName)) { isValid = false; } if (string.IsNullOrWhiteSpace(importForm.Name)) { ModelState.AddModelError($"ImportForm.{nameof(importForm.Name)}", "accelerator.deployment.validation.required".AsAngularResourceString()); isValid = false; } else { var name = _slugifyService.Slugify(CultureInfo.CurrentCulture, importForm.Name); if (_channelService.Get(name) != null) { ModelState.AddModelError($"ImportForm.{nameof(importForm.Name)}", "accelerator.deployment.validation.channelexists".AsAngularResourceString()); isValid = false; } } var tempDomainName = !string.IsNullOrEmpty(importForm.DomainName) && importForm.DomainName.Contains("://") ? importForm.DomainName : "http://" + importForm.DomainName; if (string.IsNullOrWhiteSpace(importForm.DomainName)) { ModelState.AddModelError($"ImportForm.{nameof(importForm.DomainName)}", "accelerator.deployment.validation.required".AsAngularResourceString()); isValid = false; } else if (importForm.DomainName.Contains(" ")) { ModelState.AddModelError($"ImportForm.{nameof(importForm.DomainName)}", "accelerator.deployment.validation.space".AsAngularResourceString()); isValid = false; } else if (!Uri.TryCreate(tempDomainName, UriKind.RelativeOrAbsolute, out var uri)) { ModelState.AddModelError($"ImportForm.{nameof(importForm.DomainName)}", "general.hostnameisnotvalid".AsAngularResourceString()); isValid = false; } else { var domain = AcceleratorPackage.ExtractDomainName(importForm.DomainName); var urlPath = AcceleratorPackage.ExtractUrlPath(importForm.DomainName).NullIfEmpty(); if (urlPath?.Contains("/") == true) { ModelState.AddModelError($"ImportForm.{nameof(importForm.DomainName)}", "accelerator.deployment.validation.urlpath".AsAngularResourceString()); isValid = false; } else { var domainName = _domainNameService.Get(domain); if (domainName != null && _channelService.GetAll().Any(x => x .DomainNameLinks .Any(z => z.DomainNameSystemId == domainName.SystemId && string.Equals(z.UrlPrefix, urlPath, StringComparison.OrdinalIgnoreCase)))) { ModelState.AddModelError($"ImportForm.{nameof(importForm.DomainName)}", "accelerator.deployment.validation.domainnameexists".AsAngularResourceString()); isValid = false; } } } return(isValid); }