public void Execute(Guid profileId) { IAwsClient awsClient; if (!TryInitializeClient(profileId, out awsClient)) { return; } List <InstanceResource> awsInstances = awsClient.InstanceService.GetAllInstances().ToList(); Dictionary <string, List <SecurityGroupResource> > securityGroupsFor = awsClient.SecurityGroupService.GetSecurityGroupMap(awsInstances); foreach (InstanceResource awsInstance in awsInstances) { List <SecurityGroupEntity> securityGroups = securityGroupsFor[awsInstance.InstanceId] .Select(x => new SecurityGroupEntity { Name = x.GroupName, ResourceId = x.GroupId }).ToList(); string instanceId = awsInstance.InstanceId; InstanceEntity dbInstance = _instanceRepository.FindAll() .FirstOrDefault(x => StackItIdTagsMatch(x, awsInstance) || x.ResourceId == instanceId); InstanceEntity instanceToPersist = dbInstance ?? new InstanceEntity(); SaveMechanic saveMechanic = dbInstance == null ? SaveMechanic.Add : SaveMechanic.Update; UpdateInstance.Map(awsInstance, instanceToPersist, saveMechanic); instanceToPersist.OwnerProfileId = profileId; instanceToPersist.SecurityGroups = securityGroups; UpdateInstance.Persist(_instanceRepository, instanceToPersist, saveMechanic); } }
public void Setup() { AwsProfileRepositoryMock = new Mock<IRepository<AwsProfile>>(); AwsClientFactoryMock = new Mock<IAwsClientFactory>(); InstanceRepositoryMock = new Mock<IRepository<Instance>>(); InstanceServiceMock = new Mock<IInstanceService>(); Command = new UpdateInstance(AwsProfileRepositoryMock.Object, AwsClientFactoryMock.Object, InstanceRepositoryMock.Object); }