public async Task <Boolean> Handle(UpdateDHCPv6ScopeCommand request, CancellationToken cancellationToken) { _logger.LogDebug("Handle started"); var scope = _rootScope.GetScopeById(request.ScopeId); if (scope == DHCPv6Scope.NotFound) { return(false); } Guid?parentId = scope.HasParentScope() == false ? new Guid?() : scope.ParentScope.Id; var properties = GetScopeProperties(request); var addressProperties = GetScopeAddressProperties(request); if (request.Name != scope.Name) { _rootScope.UpdateScopeName(request.ScopeId, ScopeName.FromString(request.Name)); } if (request.Description != scope.Description) { _rootScope.UpdateScopeDescription(request.ScopeId, ScopeDescription.FromString(request.Description)); } if (request.ParentId != parentId) { _rootScope.UpdateParent(request.ScopeId, request.ParentId); } _rootScope.UpdateScopeResolver(request.ScopeId, GetResolverInformation(request)); if (addressProperties != scope.AddressRelatedProperties) { _rootScope.UpdateAddressProperties(request.ScopeId, addressProperties); } if (properties != scope.Properties) { _rootScope.UpdateScopeProperties(request.ScopeId, properties); } Boolean result = await _store.Save(_rootScope); if (result == true) { var triggers = _rootScope.GetTriggers(); if (triggers.Any() == true) { await _serviceBus.Publish(new NewTriggerHappendMessage(triggers)); _rootScope.ClearTriggers(); } } return(result); }