Ejemplo n.º 1
0
        public async Task <GetAllEntityDynamicParameterValuesOutput> GetAllEntityDynamicParameterValues(GetAllEntityDynamicParameterValuesInput input)
        {
            var localCacheOfDynamicParameterValues = new Dictionary <int, List <string> >();

            async Task <List <string> > LocalGetAllValuesOfDynamicParameter(int dynamicParameterId)
            {
                if (!localCacheOfDynamicParameterValues.ContainsKey(dynamicParameterId))
                {
                    localCacheOfDynamicParameterValues[dynamicParameterId] = (await _dynamicParameterValueManager
                                                                              .GetAllValuesOfDynamicParameterAsync(dynamicParameterId))
                                                                             .Select(x => x.Value).ToList();
                }

                return(localCacheOfDynamicParameterValues[dynamicParameterId]);
            }

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

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

            foreach (var entityDynamicParameter in entityDynamicParameters)
            {
                var outputItem = new GetAllEntityDynamicParameterValuesOutputItem
                {
                    EntityDynamicParameterId = entityDynamicParameter.Id,
                    InputType             = _dynamicEntityParameterDefinitionManager.GetOrNullAllowedInputType(entityDynamicParameter.DynamicParameter.InputType),
                    ParameterName         = entityDynamicParameter.DynamicParameter.ParameterName,
                    AllValuesInputTypeHas = await LocalGetAllValuesOfDynamicParameter(entityDynamicParameter.DynamicParameter.Id),
                    SelectedValues        = entityDynamicParameterSelectedValues.ContainsKey(entityDynamicParameter.Id)
                        ? entityDynamicParameterSelectedValues[entityDynamicParameter.Id]
                        : new List <string>()
                };

                output.Items.Add(outputItem);
            }

            return(output);
        }
Ejemplo n.º 2
0
 public IInputType FindAllowedInputType(string name)
 {
     return(_dynamicEntityParameterDefinitionManager.GetOrNullAllowedInputType(name));
 }