From de224382f885e229cd2fcda35b0371ef9f6b5eb3 Mon Sep 17 00:00:00 2001 From: Sohail Hussain Date: Wed, 4 Aug 2021 22:20:18 -0700 Subject: [PATCH 1/2] typed audience ids should be fixed --- OptimizelySDK/OptlyConfig/OptimizelyConfigService.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OptimizelySDK/OptlyConfig/OptimizelyConfigService.cs b/OptimizelySDK/OptlyConfig/OptimizelyConfigService.cs index 14653918..53ad7899 100644 --- a/OptimizelySDK/OptlyConfig/OptimizelyConfigService.cs +++ b/OptimizelySDK/OptlyConfig/OptimizelyConfigService.cs @@ -74,11 +74,14 @@ private OptimizelyEvent[] GetEvents(ProjectConfig projectConfig) private OptimizelyAudience[] GetAudiences(ProjectConfig projectConfig) { - var filteredAudiencesArr = Array.FindAll(projectConfig.Audiences, aud => !aud.Id.Equals("$opt_dummy_audience")); - var optimizelyAudience = filteredAudiencesArr.Select(aud => new OptimizelyAudience(aud.Id, aud.Name, aud.Conditions)); var typedAudiences = projectConfig.TypedAudiences?.Select(aud => new OptimizelyAudience(aud.Id, aud.Name, JsonConvert.SerializeObject(aud.Conditions))); + var typedAudienceIds = typedAudiences.Select(ta => ta.Id).ToList(); + var filteredAudiencesArr = Array.FindAll(projectConfig.Audiences, aud => !aud.Id.Equals("$opt_dummy_audience") + && !typedAudienceIds.Contains(aud.Id)); + var optimizelyAudience = filteredAudiencesArr.Select(aud => new OptimizelyAudience(aud.Id, aud.Name, aud.Conditions)); + optimizelyAudience = optimizelyAudience.Concat(typedAudiences).OrderBy( aud => aud.Name); return optimizelyAudience.ToArray(); From 52d5124b6f6c1b28de5a596c69355415d6d9219a Mon Sep 17 00:00:00 2001 From: Sohail Hussain Date: Thu, 5 Aug 2021 10:14:12 -0700 Subject: [PATCH 2/2] fixed unit test --- .../OptimizelyConfigTests/OptimizelyConfigTest.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/OptimizelySDK.Tests/OptimizelyConfigTests/OptimizelyConfigTest.cs b/OptimizelySDK.Tests/OptimizelyConfigTests/OptimizelyConfigTest.cs index 51025bf2..b03f6bef 100644 --- a/OptimizelySDK.Tests/OptimizelyConfigTests/OptimizelyConfigTest.cs +++ b/OptimizelySDK.Tests/OptimizelyConfigTests/OptimizelyConfigTest.cs @@ -531,12 +531,6 @@ public void TestGetOptimizelyConfigService() audiences: new OptimizelyAudience[] { new OptimizelyAudience("0", "$$dummy", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), - new OptimizelyAudience("3468206643", "$$dummyExactBoolean", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), - new OptimizelyAudience("3468206646", "$$dummyExactNumber", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), - new OptimizelyAudience("3988293899", "$$dummyExists", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), - new OptimizelyAudience("3468206647", "$$dummyGtNumber", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), - new OptimizelyAudience("3468206644", "$$dummyLtNumber", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), - new OptimizelyAudience("3988293898", "$$dummySubstringString", "{\"type\": \"custom_attribute\", \"name\": \"$opt_dummy_attribute\", \"value\": \"impossible_value\"}"), new OptimizelyAudience("3468206643", "exactBoolean", "[\"and\",[\"or\",[\"or\",{\"name\":\"should_do_it\",\"type\":\"custom_attribute\",\"match\":\"exact\",\"value\":true}]]]"), new OptimizelyAudience("3468206646", "exactNumber", "[\"and\",[\"or\",[\"or\",{\"name\":\"lasers\",\"type\":\"custom_attribute\",\"match\":\"exact\",\"value\":45.5}]]]"), new OptimizelyAudience("3468206642", "exactString", "[\"and\", [\"or\", [\"or\", {\"name\": \"house\", \"type\": \"custom_attribute\", \"value\": \"Gryffindor\"}]]]"),