public virtual async Task <GetFeatureListResultDto> GetAsync([NotNull] string providerName, string providerKey) { await CheckProviderPolicy(providerName, providerKey); var result = new GetFeatureListResultDto { Groups = new List <FeatureGroupDto>() }; foreach (var group in FeatureDefinitionManager.GetGroups()) { var groupDto = new FeatureGroupDto { Name = group.Name, DisplayName = group.DisplayName.Localize(StringLocalizerFactory), Features = new List <FeatureDto>() }; foreach (var featureDefinition in group.GetFeaturesWithChildren()) { if (providerName == TenantFeatureValueProvider.ProviderName && CurrentTenant.Id == null && providerKey == null && !featureDefinition.IsAvailableToHost) { continue; } var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, providerKey); groupDto.Features.Add(new FeatureDto { Name = featureDefinition.Name, DisplayName = featureDefinition.DisplayName?.Localize(StringLocalizerFactory), ValueType = featureDefinition.ValueType, Description = featureDefinition.Description?.Localize(StringLocalizerFactory), ParentName = featureDefinition.Parent?.Name, Value = feature.Value, Provider = new FeatureProviderDto { Name = feature.Provider?.Name, Key = feature.Provider?.Key } }); } SetFeatureDepth(groupDto.Features, providerName, providerKey); if (groupDto.Features.Any()) { result.Groups.Add(groupDto); } } return(result); }
public static FeatureGroupDto ToDto(this FeatureGroup feature) { var dto = new FeatureGroupDto { Name = feature.Name, DisplayName = feature.DisplayName }; ((IData)feature).ToDto((IDataDto)dto); return(dto); }
public static FeatureGroup ToDomain(this FeatureGroupDto feature, FeatureGroup originalFeature = null) { if (originalFeature != null && originalFeature.Id == feature.Id) { originalFeature.Name = feature.Name; originalFeature.DisplayName = feature.DisplayName; ((IDataDto)feature).ToDomain((IData)originalFeature); return(originalFeature); } var data = new FeatureGroup { Name = feature.Name, DisplayName = feature.DisplayName }; ((IDataDto)feature).ToDomain((IData)data); return(data); }
public void Post() { try { using (var server = TestServer.Create <MyStartup>()) { var dto = new FeatureGroupDto { Id = 0, Name = "Group 1", DisplayName = "Group 1" }; HttpResponseMessage response; response = server.HttpClient.PostAsJsonAsync("api/FeatureGroup", dto).Result; } } catch (Exception ex) { } }