Example #1
0
        public async Task <NetworkInfo> RegisterAsync(RegisterNetworkRequest request)
        {
            Ensure.Object(request, nameof(request)); // Validate the request

            var network = new NetworkInfo(
                id: await db.Networks.Sequence.NextAsync(),
                addressBlocks: request.AddressBlocks,
                ownerId: request.OwnerId,
                resource: request.Resource
                );

            await db.Networks.InsertAsync(network);

            return(network);
        }
        public async Task <NetworkSecurityGroup> GetAsync(
            NetworkInfo network,
            NetworkInterfaceSecurityGroup networkSecurityGroup)
        {
            Ensure.NotNull(network, nameof(network));
            Ensure.NotNull(networkSecurityGroup, nameof(networkSecurityGroup));

            var region = Locations.Get(network.LocationId);

            var nsg = await nsgService.FindAsync(ResourceProvider.Aws, networkSecurityGroup.GroupId);;

            if (nsg == null)
            {
                var registerRequest = new RegisterNetworkSecurityGroupRequest(
                    name: networkSecurityGroup.GroupName,
                    networkId: network.Id,
                    resource: ManagedResource.NetworkSecurityGroup(region, networkSecurityGroup.GroupId)
                    );

                nsg = await nsgService.RegisterAsync(registerRequest);;
            }

            return(nsg);
        }