public async Task <Guid?> Handle(CreateDHCPv4InterfaceListenerCommand request, CancellationToken cancellationToken) { _logger.LogDebug("Handle started"); var listener = DHCPv4Listener.Create( request.NicId, DHCPListenerName.FromString(request.Name), IPv4Address.FromString(request.IPv4Addres)); var possibleListeners = _interfaceEngine.GetPossibleListeners(); if (possibleListeners.Count(x => x.Address == listener.Address && x.PhysicalInterfaceId == listener.PhysicalInterfaceId) == 0) { return(null); } var activeListeners = await _interfaceEngine.GetActiveListeners(); if (activeListeners.Count(x => x.Address == listener.Address && x.PhysicalInterfaceId == listener.PhysicalInterfaceId) > 0) { return(null); } if (await _storageEngine.Save(listener) == false) { return(null); } _interfaceEngine.OpenListener(listener); return(listener.Id); }