コード例 #1
0
        public async Task ExecuteAsync(EnsureCustomEntityDefinitionExistsCommand command, IExecutionContext executionContext)
        {
            var customEntityDefinition = _customEntityDefinitionRepository.GetByCode(command.CustomEntityDefinitionCode);

            EntityNotFoundException.ThrowIfNull(customEntityDefinition, command.CustomEntityDefinitionCode);

            var dbDefinition = await _dbContext
                               .CustomEntityDefinitions
                               .FilterByCode(command.CustomEntityDefinitionCode)
                               .SingleOrDefaultAsync();

            if (dbDefinition == null)
            {
                await _commandExecutor.ExecuteAsync(new EnsureEntityDefinitionExistsCommand(command.CustomEntityDefinitionCode));

                dbDefinition = new CustomEntityDefinition()
                {
                    CustomEntityDefinitionCode = customEntityDefinition.CustomEntityDefinitionCode,
                    ForceUrlSlugUniqueness     = customEntityDefinition.ForceUrlSlugUniqueness,
                    HasLocale = customEntityDefinition.HasLocale
                };

                if (customEntityDefinition is IOrderableCustomEntityDefinition)
                {
                    dbDefinition.IsOrderable = ((IOrderableCustomEntityDefinition)customEntityDefinition).Ordering != CustomEntityOrdering.None;
                }

                _dbContext.CustomEntityDefinitions.Add(dbDefinition);
                await _dbContext.SaveChangesAsync();
            }
        }
コード例 #2
0
        private async Task <CustomEntityDefinition> GetAndValidateDbDefinitionAsync(AddCustomEntityCommand command, CustomEntityDefinitionSummary definition)
        {
            var dbDefinition = await QueryDbDefinition(command).SingleOrDefaultAsync();

            // Registrastion is done via code, so if it doesnt exist in the db yet, lets add it
            if (dbDefinition == null)
            {
                await _commandExecutor.ExecuteAsync(new EnsureEntityDefinitionExistsCommand(command.CustomEntityDefinitionCode));

                dbDefinition = new CustomEntityDefinition()
                {
                    CustomEntityDefinitionCode = definition.CustomEntityDefinitionCode,
                    ForceUrlSlugUniqueness     = definition.ForceUrlSlugUniqueness,
                    HasLocale   = definition.HasLocale,
                    IsOrderable = definition.Ordering != CustomEntityOrdering.None
                };
                _dbContext.CustomEntityDefinitions.Add(dbDefinition);
            }
            else
            {
                // update record
                dbDefinition.ForceUrlSlugUniqueness = definition.ForceUrlSlugUniqueness;
                dbDefinition.HasLocale   = definition.HasLocale;
                dbDefinition.IsOrderable = definition.Ordering != CustomEntityOrdering.None;
            }

            return(dbDefinition);
        }