コード例 #1
0
        public void Should_Clean_Value()
        {
            var dynamicParameter = CreateAndGetDynamicParameterWithTestPermission();

            var dynamicParameterValue = new DynamicParameterValue()
            {
                DynamicParameterId = dynamicParameter.Id,
                Value    = "Test",
                TenantId = AbpSession.TenantId
            };

            var dynamicParameterValue2 = new DynamicParameterValue()
            {
                DynamicParameterId = dynamicParameter.Id,
                Value    = "Test2",
                TenantId = AbpSession.TenantId
            };

            WithUnitOfWork(() =>
            {
                _dynamicParameterValueManager.Add(dynamicParameterValue);
                _dynamicParameterValueManager.Add(dynamicParameterValue2);
            });

            RunAndCheckIfPermissionControlled(() =>
            {
                _dynamicParameterValueManager.CleanValues(dynamicParameter.Id);
            });

            WithUnitOfWork(() =>
            {
                var entity = _dynamicParameterValueManager.GetAllValuesOfDynamicParameter(dynamicParameter.Id);
                entity.ShouldBeEmpty();
            });
        }
        public async Task <GetAllEntityDynamicParameterValuesOutput> GetAllEntityDynamicParameterValues(GetAllEntityDynamicParameterValuesInput input)
        {
            var localCacheOfGetAllValuesOfDynamicParameter = new Dictionary <int, List <string> >();

            List <string> GetAllValuesInputTypeHas(int dynamicParameterId)
            {
                if (!localCacheOfGetAllValuesOfDynamicParameter.ContainsKey(dynamicParameterId))
                {
                    localCacheOfGetAllValuesOfDynamicParameter[dynamicParameterId] = _dynamicParameterValueManager
                                                                                     .GetAllValuesOfDynamicParameter(dynamicParameterId)
                                                                                     .Select(x => x.Value).ToList();
                }

                return(localCacheOfGetAllValuesOfDynamicParameter[dynamicParameterId]);
            }

            var output = new GetAllEntityDynamicParameterValuesOutput();

            var entityDynamicParameters = await _entityDynamicParameterManager.GetAllAsync(input.EntityFullName);

            var entityDynamicParameterIdAndValuesDictionary = (await _entityDynamicParameterValueManager.GetValuesAsync(input.EntityFullName, input.EntityId))
                                                              .GroupBy(value => value.EntityDynamicParameterId)
                                                              .ToDictionary(group => group.Key, items => items.ToList());


            foreach (var entityDynamicParameter in entityDynamicParameters)
            {
                var outputItem = new GetAllEntityDynamicParameterValuesOutputItem
                {
                    EntityDynamicParameterId = entityDynamicParameter.Id,
                    InputType             = _dynamicEntityParameterDefinitionManager.GetOrNullAllowedInputType(entityDynamicParameter.DynamicParameter.InputType),
                    ParameterName         = entityDynamicParameter.DynamicParameter.ParameterName,
                    AllValuesInputTypeHas = GetAllValuesInputTypeHas(entityDynamicParameter.DynamicParameter.Id),
                    SelectedValues        = entityDynamicParameterIdAndValuesDictionary.ContainsKey(entityDynamicParameter.Id)
                        ? entityDynamicParameterIdAndValuesDictionary[entityDynamicParameter.Id].Select(value => value.Value).ToList()
                        : new List <string>()
                };

                output.Items.Add(outputItem);
            }

            return(output);
        }