Skip to content

Commit 22b38ee

Browse files
Merged PR 91: updates to fix a bug with solution import whitelisting
updates to fix a bug with solution import whitelisting
2 parents 111d06f + 9aa2919 commit 22b38ee

File tree

4 files changed

+51
-34
lines changed

4 files changed

+51
-34
lines changed

CloudSmith.Dynamics365.CrmSvcUtil/CompositeFilterService.cs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public override bool GenerateAttribute(AttributeMetadata attributeMetadata, ISer
6868
}
6969
else
7070
{
71-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasAttributeFilters)
71+
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive)
7272
return false;
7373

7474
blacklist = _blacklistFilters.Any(filter => filter.GenerateAttribute(attributeMetadata, services));
@@ -94,7 +94,7 @@ public override bool GenerateEntity(EntityMetadata entityMetadata, IServiceProvi
9494
}
9595
else
9696
{
97-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasEntityFilters)
97+
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive)
9898
return false;
9999

100100
blacklist = _blacklistFilters.Any(filter => filter.GenerateEntity(entityMetadata, services));
@@ -116,10 +116,6 @@ public override bool GenerateOption(OptionMetadata optionMetadata, IServiceProvi
116116

117117
if (!whitelist)
118118
{
119-
/*
120-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasOptionSetFilters)
121-
return false;
122-
*/
123119
blacklist = _blacklistFilters.Any(filter => filter.GenerateOption(optionMetadata, services));
124120
}
125121

@@ -138,7 +134,7 @@ public override bool GenerateOptionSet(OptionSetMetadataBase optionSetMetadata,
138134
}
139135
else
140136
{
141-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasOptionSetFilters)
137+
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive)
142138
return false;
143139

144140
blacklist = _blacklistFilters.Any(filter => filter.GenerateOptionSet(optionSetMetadata, services));
@@ -164,10 +160,9 @@ public override bool GenerateRelationship(RelationshipMetadataBase relationshipM
164160
}
165161
else
166162
{
167-
/*
168-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasEntityFilters)
163+
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive)
169164
return false;
170-
*/
165+
171166
blacklist = _blacklistFilters.Any(filter => filter.GenerateRelationship(relationshipMetadata, otherEntityMetadata, services));
172167

173168
if (!blacklist)
@@ -191,10 +186,9 @@ public override bool GenerateSdkMessage(SdkMessage sdkMessage, IServiceProvider
191186
}
192187
else
193188
{
194-
/*
195-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasEntityFilters)
189+
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive)
196190
return false;
197-
*/
191+
198192
blacklist = _blacklistFilters.Any(filter => filter.GenerateSdkMessage(sdkMessage, services));
199193

200194
if (!blacklist)
@@ -218,10 +212,9 @@ public override bool GenerateSdkMessagePair(SdkMessagePair sdkMessagePair, IServ
218212
}
219213
else
220214
{
221-
/*
222-
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive && Configuration.Filtering.Whitelist.HasEntityFilters)
215+
if (Configuration.Filtering.HasWhitelist && Configuration.Filtering.Whitelist.Filter == WhitelistFilter.Exclusive)
223216
return false;
224-
*/
217+
225218
blacklist = _blacklistFilters.Any(filter => filter.GenerateSdkMessagePair(sdkMessagePair, services));
226219

227220
if (!blacklist)

CloudSmith.Dynamics365.CrmSvcUtil/CrmSvcUtil.exe.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
<entity expression=".*" ignoreCase="true" />
3636
<attribute entity="*" expression=".*" ignoreCase="true" />
3737
</Filters>
38+
-->
3839
<Solutions>
39-
<add solution="MyDynamicsSolution" />
40+
<add solution="TestSolution" />
4041
</Solutions>
41-
-->
4242
<!-- Valid values are Default, CustomOnly, and UncustomizedOnly -->
4343
<Customizations strategy="Default" />
4444
</Whitelist>

CloudSmith.Dynamics365.CrmSvcUtil/Filter/FilterListFilterService.cs

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ public override bool GenerateOptionSet(OptionSetMetadataBase optionSetMetadata,
7979

8080
if (value.HasValue)
8181
{
82-
DynamicsMetadataCache.OptionSets.AddBy(optionSetMetadata);
82+
if (value.Value)
83+
{
84+
DynamicsMetadataCache.OptionSets.AddBy(optionSetMetadata);
85+
}
8386

8487
return value.Value;
8588
}
@@ -120,7 +123,10 @@ public override bool GenerateOption(OptionMetadata optionMetadata, IServiceProvi
120123

121124
if (value.HasValue)
122125
{
123-
DynamicsMetadataCache.Options.AddBy(optionMetadata);
126+
if (value.Value)
127+
{
128+
DynamicsMetadataCache.Options.AddBy(optionMetadata);
129+
}
124130

125131
return value.Value;
126132
}
@@ -155,7 +161,10 @@ public override bool GenerateAttribute(AttributeMetadata attributeMetadata, ISer
155161

156162
if (value.HasValue)
157163
{
158-
DynamicsMetadataCache.Attributes.AddBy(attributeMetadata);
164+
if (value.Value)
165+
{
166+
DynamicsMetadataCache.Attributes.AddBy(attributeMetadata);
167+
}
159168

160169
return value.Value;
161170
}
@@ -193,7 +202,10 @@ public override bool GenerateEntity(EntityMetadata entityMetadata, IServiceProvi
193202

194203
if (value.HasValue)
195204
{
196-
DynamicsMetadataCache.Entities.AddBy(entityMetadata);
205+
if (value.Value)
206+
{
207+
DynamicsMetadataCache.Entities.AddBy(entityMetadata);
208+
}
197209

198210
return value.Value;
199211
}
@@ -228,7 +240,10 @@ public override bool GenerateRelationship(RelationshipMetadataBase relationshipM
228240

229241
if (value.HasValue)
230242
{
231-
DynamicsMetadataCache.Relationships.AddBy(relationshipMetadata);
243+
if (value.Value)
244+
{
245+
DynamicsMetadataCache.Relationships.AddBy(relationshipMetadata);
246+
}
232247

233248
return value.Value;
234249
}
@@ -271,7 +286,10 @@ public override bool GenerateSdkMessage(SdkMessage sdkMessage, IServiceProvider
271286

272287
if (value.HasValue)
273288
{
274-
DynamicsMetadataCache.SdkMessages.AddBy(sdkMessage);
289+
if (value.Value)
290+
{
291+
DynamicsMetadataCache.SdkMessages.AddBy(sdkMessage);
292+
}
275293

276294
return value.Value;
277295
}
@@ -306,7 +324,10 @@ public override bool GenerateSdkMessagePair(SdkMessagePair sdkMessagePair, IServ
306324

307325
if (value.HasValue)
308326
{
309-
DynamicsMetadataCache.SdkMessagePairs.AddBy(sdkMessagePair);
327+
if (value.Value)
328+
{
329+
DynamicsMetadataCache.SdkMessagePairs.AddBy(sdkMessagePair);
330+
}
310331

311332
return value.Value;
312333
}

CloudSmith.Dynamics365.CrmSvcUtil/Filter/SolutionFilterService.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,31 @@ public class SolutionFilterService : FilterListFilterService
1919
{
2020
internal SolutionFilterService(BaseFilterService service, FilterListStrategy strategy)
2121
: base(service, strategy)
22-
{ }
22+
{ InitializeSolutionFilterService(); }
2323

2424
public SolutionFilterService(ICodeWriterFilterService defaultService)
2525
: base(defaultService)
26-
{ }
26+
{ InitializeSolutionFilterService(); }
2727

2828
internal SolutionFilterService(ICodeWriterFilterService defaultService, IServiceExtensionsConfiguration configuration)
2929
: base(defaultService, configuration)
30-
{ }
30+
{ InitializeSolutionFilterService(); }
3131

3232
internal SolutionFilterService(ICodeWriterFilterService defaultService, IServiceExtensionsConfiguration configuration, FilterListStrategy strategy)
3333
: base(defaultService, configuration, strategy)
34-
{ }
34+
{ InitializeSolutionFilterService(); }
3535

3636
public SolutionFilterService(ICodeWriterMessageFilterService defaultService)
3737
: base(defaultService)
38-
{ }
38+
{ InitializeSolutionFilterService(); }
3939

4040
internal SolutionFilterService(ICodeWriterMessageFilterService defaultService, IServiceExtensionsConfiguration configuration)
4141
: base(defaultService, configuration)
42-
{ }
42+
{ InitializeSolutionFilterService(); }
4343

4444
internal SolutionFilterService(ICodeWriterMessageFilterService defaultService, IServiceExtensionsConfiguration configuration, FilterListStrategy strategy)
4545
: base(defaultService, configuration, strategy)
46-
{ }
46+
{ InitializeSolutionFilterService(); }
4747

4848
private IEnumerable<EntityMetadata> solutionEntities;
4949

@@ -54,8 +54,11 @@ internal void InitializeSolutionFilterService()
5454
.Select(s => s.SolutionName)
5555
.ToArray();
5656

57-
var service = new OrganizationServiceFactory().Create();
58-
solutionEntities = GetSolutionEntities(solutions, service);
57+
if (solutions?.Length > 0)
58+
{
59+
var service = new OrganizationServiceFactory().Create();
60+
solutionEntities = GetSolutionEntities(solutions, service);
61+
}
5962
}
6063

6164
protected override bool? GenerateEntity(EntityMetadata entityMetadata)

0 commit comments

Comments
 (0)