private async Task ValidateIsUniqueAsync( UpdateCustomEntityUrlCommand command, CustomEntityDefinitionSummary definition, IExecutionContext executionContext ) { if (!definition.ForceUrlSlugUniqueness) { return; } var query = new IsCustomEntityUrlSlugUniqueQuery(); query.CustomEntityDefinitionCode = definition.CustomEntityDefinitionCode; query.CustomEntityId = command.CustomEntityId; query.LocaleId = command.LocaleId; query.UrlSlug = command.UrlSlug; var isUnique = await _queryExecutor.ExecuteAsync(query, executionContext); if (!isUnique) { var message = string.Format("A {0} already exists with the {2} '{1}'", definition.Name, command.UrlSlug, definition.Terms.GetOrDefault(CustomizableCustomEntityTermKeys.UrlSlug, "url slug").ToLower()); throw new UniqueConstraintViolationException(message, "UrlSlug", command.UrlSlug); } }
private IsCustomEntityUrlSlugUniqueQuery GetUniquenessQuery(AddCustomEntityCommand command, CustomEntityDefinitionSummary definition) { var query = new IsCustomEntityUrlSlugUniqueQuery(); query.CustomEntityDefinitionCode = definition.CustomEntityDefinitionCode; query.LocaleId = command.LocaleId; query.UrlSlug = command.UrlSlug; return(query); }
private IsCustomEntityUrlSlugUniqueQuery GetUniquenessQuery(UpdateCustomEntityDraftVersionCommand command, ICustomEntityDefinition definition, CustomEntityVersion dbVersion) { var query = new IsCustomEntityUrlSlugUniqueQuery(); query.CustomEntityDefinitionCode = definition.CustomEntityDefinitionCode; query.LocaleId = dbVersion.CustomEntity.LocaleId; query.UrlSlug = SlugFormatter.ToSlug(command.Title); query.CustomEntityId = command.CustomEntityId; return(query); }
public IContentRepositoryQueryContext <bool> IsUrlSlugUnique(IsCustomEntityUrlSlugUniqueQuery query) { return(ContentRepositoryQueryContextFactory.Create(query, ExtendableContentRepository)); }
public Task <bool> IsCustomEntityPathUniqueAsync(IsCustomEntityUrlSlugUniqueQuery query, IExecutionContext executionContext = null) { return(_queryExecutor.ExecuteAsync(query)); }
public Task <bool> IsUrlSlugUniqueAsync(IsCustomEntityUrlSlugUniqueQuery query) { return(ExtendableContentRepository.ExecuteQueryAsync(query)); }