/// <summary>
/// Load elastic load balancers to view model with AWS data based on region selected and EC2 classic/vpc
/// </summary>
private void LoadElasticLoadBalancers(AmazonElasticLoadBalancingClient elbClient)
{
try
{
DescribeLoadBalancersRequest elbreq = new DescribeLoadBalancersRequest();
DescribeLoadBalancersResponse elbresp = elbClient.DescribeLoadBalancers(elbreq);
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
vm.LoadBalancers.Clear();
}));
foreach (LoadBalancerDescription lbd in elbresp.DescribeLoadBalancersResult.LoadBalancerDescriptions)
{
if (vm.IsVpc)
{
if (lbd.VPCId != null && vm.SelectedVpc != null && lbd.VPCId == vm.SelectedVpc.VPC.VpcId)
{
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
vm.LoadBalancers.Add(lbd);
}));
}
}
else
{
if (!(lbd.VPCId != null && lbd.VPCId != string.Empty && !vm.IsVpc))
{
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
vm.LoadBalancers.Add(lbd);
}));
}
}
}
}
catch (Exception ex)
{
LogManager.LogEntry(ex.Message);
LogManager.LogEntry(ex.StackTrace);
throw new DataLoadingException("Error occurred loading elastic load balancers for region and environment type");
}
}