Skip to content

Commit a5593c5

Browse files
Florian KrönertFlorian Krönert
authored andcommitted
Fixed exception on load
1 parent c157101 commit a5593c5

1 file changed

Lines changed: 26 additions & 49 deletions

File tree

src/lib/MsDyn.Contrib.CloneFieldDefinitions/CloneFieldsControl.cs

Lines changed: 26 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ public class CloneFieldDefinitionsControl : MultipleConnectionsPluginControlBase
2929
private ColumnHeader columnHeader3;
3030
private ColumnHeader columnHeader4;
3131
private Button button1;
32-
private List<EntityMetadata> _entitiesSource;
33-
private List<EntityMetadata> _entitiesTarget;
32+
private List<EntityMetadata> _entitiesSource = new List<EntityMetadata>();
33+
private List<EntityMetadata> _entitiesTarget = new List<EntityMetadata>();
3434
private ColumnHeader columnHeader5;
3535
private Label label3;
3636
private TextBox txtPrefix;
@@ -48,8 +48,6 @@ public class CloneFieldDefinitionsControl : MultipleConnectionsPluginControlBase
4848
public CloneFieldDefinitionsControl()
4949
{
5050
InitializeComponent();
51-
_entitiesDetailedSource = new List<EntityMetadata>();
52-
_entitiesDetailedTarget = new List<EntityMetadata>();
5351
ConnectionUpdated += RetrieveAvailableEntities;
5452
}
5553

@@ -77,67 +75,46 @@ private void SetAvailableEntities()
7775
});
7876
}
7977

80-
private void RetrieveAvailableEntities(object sender, ConnectionUpdatedEventArgs eventArgs)
78+
private List<EntityMetadata> RetrieveEntities(IOrganizationService service)
8179
{
82-
WorkAsync(new WorkAsyncInfo
80+
var retrieveEntitiesRequest = new RetrieveAllEntitiesRequest
8381
{
84-
Message = "Retrieving entity metadata ...",
85-
Work = (w, e) =>
86-
{
87-
var retrieveEntitiesRequest = new RetrieveAllEntitiesRequest
88-
{
89-
EntityFilters = EntityFilters.Entity,
90-
RetrieveAsIfPublished = false
91-
};
82+
EntityFilters = EntityFilters.Entity,
83+
RetrieveAsIfPublished = false
84+
};
9285

93-
if (Service == null)
94-
{
95-
throw new Exception("No Service set!");
96-
}
86+
if (service == null)
87+
{
88+
throw new Exception("No Service set!");
89+
}
9790

98-
var response = Service.Execute(retrieveEntitiesRequest) as RetrieveAllEntitiesResponse;
91+
var response = service.Execute(retrieveEntitiesRequest) as RetrieveAllEntitiesResponse;
9992

100-
if (response == null)
101-
{
102-
throw new Exception("Failed to retrieve entities!");
103-
}
93+
if (response == null)
94+
{
95+
throw new Exception("Failed to retrieve entities!");
96+
}
10497

105-
_entitiesSource = response.EntityMetadata.ToList();
106-
},
107-
PostWorkCallBack = e =>
108-
{
109-
SetAvailableEntities();
110-
},
111-
AsyncArgument = null,
112-
IsCancelable = true,
113-
MessageWidth = 340,
114-
MessageHeight = 150
115-
});
98+
return response.EntityMetadata.ToList();
99+
}
116100

101+
private void RetrieveAvailableEntities(object sender, ConnectionUpdatedEventArgs eventArgs)
102+
{
117103
WorkAsync(new WorkAsyncInfo
118104
{
119105
Message = "Retrieving entity metadata ...",
120106
Work = (w, e) =>
121107
{
122-
var retrieveEntitiesRequest = new RetrieveAllEntitiesRequest
123-
{
124-
EntityFilters = EntityFilters.Entity,
125-
RetrieveAsIfPublished = false
126-
};
108+
_entitiesSource = RetrieveEntities(Service);
127109

128-
if (Service == null)
110+
if (AdditionalConnectionDetails.Count > 0)
129111
{
130-
throw new Exception("No Service set!");
112+
_entitiesTarget = RetrieveEntities(GetTargetService());
131113
}
132-
133-
var response = GetTargetService().Execute(retrieveEntitiesRequest) as RetrieveAllEntitiesResponse;
134-
135-
if (response == null)
114+
else
136115
{
137-
throw new Exception("Failed to retrieve entities!");
116+
_entitiesTarget = _entitiesSource;
138117
}
139-
140-
_entitiesTarget = response.EntityMetadata.ToList();
141118
},
142119
PostWorkCallBack = e =>
143120
{
@@ -738,7 +715,7 @@ protected override void ConnectionDetailsUpdated(NotifyCollectionChangedEventArg
738715
{
739716
_entitiesDetailedTarget = new List<EntityMetadata>();
740717
RetrieveAvailableEntities(null, null);
741-
button2.Text = $"Target Org: {(AdditionalConnectionDetails.Count > 0 ? AdditionalConnectionDetails[0].Organization : "Source")}";
718+
button2.Text = $"Target Org: {(AdditionalConnectionDetails != null && AdditionalConnectionDetails.Count > 0 ? AdditionalConnectionDetails[0].Organization : "Source")}";
742719
}
743720

744721
private void button2_Click(object sender, EventArgs e)

0 commit comments

Comments
 (0)