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); }
public IInputType FindAllowedInputType(string name) { return(_dynamicEntityParameterDefinitionManager.GetOrNullAllowedInputType(name)); }